Javascript 我需要一个表,可以添加一行,$\u POST,而不在选择时清除内容
我有个问题。我希望我的网页允许表中有多个条目。但是,某些列字段用于搜索数据库并返回影响以下字段的值。目前可以完成一个条目。然而,我想把它放到一个表中,在这个表中我有一个addrow按钮,我已经添加了javascriptJavascript 我需要一个表,可以添加一行,$\u POST,而不在选择时清除内容,javascript,php,arrays,post,Javascript,Php,Arrays,Post,我有个问题。我希望我的网页允许表中有多个条目。但是,某些列字段用于搜索数据库并返回影响以下字段的值。目前可以完成一个条目。然而,我想把它放到一个表中,在这个表中我有一个addrow按钮,我已经添加了javascript <button id="add_row" >Add Row</button> <button id="delete_row">Delete Row</button> <script type="text/javascript
<button id="add_row" >Add Row</button>
<button id="delete_row">Delete Row</button>
<script type="text/javascript">
$(document).ready(function(){
var i=1;
$("#add_row").click(function(){
$('#addr'+i).html($('#addr0').html());
$('#timeTable').append('<tr id="addr'+(i+1)+'"></tr>');
i++;
});
$("#delete_row").click(function(){
if(i>1){
$("#addr"+(i-1)).html('');
i--;
}
});
});
现在我把这个放在桌子的所有其他方面,它工作了。即使我在刷新后更新另一个框,它也会保留数据。现在我想知道是否可以把它做成一个数组
$task[x] = $_POST["task[x]"];
我想更改_POST的原因是因为它是一个数组,如果它们都相等,那么我的数据将进入其中,所以我确实希望它是一个数组,因为它们每个都需要允许不同的值
基本上,我希望通过javascript增加一个变量,并将其与每个添加的行相关联。我已经寻找并发现了“类似”的问题,但并不完全是我想要的。这是相当具体的。最后,我有一个偶数/奇数表,这意味着表中每隔一行的格式都会改变。但是,当我使用“添加行”按钮时,它只执行前两行,然后它不再保持格式。建议
<script type="text/javascript">
$(document).ready(function(){
$("tr:even").css("background-color", "#A71B95");
$("tr:odd").css("background-color", "#F8D3F3");
});
</script>
$(文档).ready(函数(){
$(“tr:偶数”).css(“背景色”,“#A71B95”);
$(“tr:odd”).css(“背景色”,即“F8D3F3”);
});
因此,在第二行之后,它不再改变背景颜色
2018年8月8日编辑
我尝试过使用javascript。下面是我目前在php部分中看到的内容。
$text=$_POST[“text1”];
$project1=$_POST[“projects1”]
(Mysql),用于填充$textA/$textB进行选择和$projectsA
B
这是java
<button id="add_row" >Add Row</button>
<button id="delete_row">Delete Row</button>
<script>
$(document).ready(function(){
var i=1;
$("#add_row").click(function(){
$('#addr'+i).html($('#addr0').html());
$('#timeTable').append('<tr id="addr'+(i+1)+'"></tr>');
i++;
$("tr:even").css("background-color", "#A71B95");
$("tr:odd").css("background-color", "#F8D3F3");
});
$("#delete_row").click(function(){
if(i>1){
$("#addr"+(i-1)).html('');
i--;
}
});
$('#text').change(function(){
var text1 = $('#text').val();
$.post("website.php",
{text1: text},
function(text1)
{
document.getElementsByName('text1').value= text1;
}
);
});
});
</script>
添加行
删除行
$(文档).ready(函数(){
var i=1;
$(“#添加_行”)。单击(函数(){
$('#addr'+i).html($('#addr0').html());
$(“#时间表”)。附加(“”);
i++;
$(“tr:偶数”).css(“背景色”,“#A71B95”);
$(“tr:odd”).css(“背景色”,即“F8D3F3”);
});
$(“#删除_行”)。单击(函数(){
如果(i>1){
$(“#addr”+(i-1)).html(“”);
我--;
}
});
$('#text')。更改(函数(){
var text1=$('#text').val();
$.post(“website.php”,
{text1:text},
函数(text1)
{
document.getElementsByName('text1')。value=text1;
}
);
});
});
因此,我尝试添加一个新行,然后发布信息,以便它读取第一列的更改,然后根据该更改更新第二列的选择。但是,当我添加行时遇到问题,它会刷新页面并清除所有内容。在我添加行之后也一样。我想添加具有相同功能的行。希望这有助于更好地理解为什么我想要这篇文章,但不想刷新。我希望它进入$_POST['text1'],这样它就可以为下一列运行查询和更新。同样,对于输入的每一行。当您填写第一个字段时,使用ajax启动您的帖子。这将停止页面刷新。然后,在为整行添加值后,您可以触发正常帖子。“我已经查找并发现了“类似”问题,但并不完全符合我的要求。这非常具体。”-在动态添加元素时,在HTML元素属性中增加一些数字/索引,并不是很具体。那你说“不完全是我想要的”是什么意思?通过纯复制和粘贴不起作用,或者…?“因此在第二行之后,它不再更改背景颜色。”-当然不会,因为您只为加载页面时已经存在的行设置内联样式。解决这个问题的方法很简单——首先不要使用JS,CSS可以自己处理这个问题@CBroe,我修复了背景颜色问题。但我的意思是,我发现很多情况都是一次性的$_POST['task1']我希望它在数组中。如果用户想要添加到表格中,我希望表格以一个空行开始。他们添加了,但我希望第一行的信息不会改变。然后,当用户提交信息时,它将读取所有行并放入数据库表中。那么,是什么阻止你在Google中键入“php form fields as array”之类的琐碎内容,并发现你需要在字段名称中使用方括号呢?没有什么阻止我@CBroe,我已经这样做了,并且没有发现任何这样使用它的例子,它通常只有$_POST['insert']而不是数组。要将行着色为奇数,您可以使用css
tr{background:#f2f3f6}tr:nth child(2n+1){background:#ccc}
但它适用于多行。用户将填写一行有多个帖子,然后下一行将是多个帖子的新行。我正在尝试创建类似于电子表格的东西,从数据库表中检索数据。每一行可以是不同的,甚至有非常相似的信息。是的,所以您可以根据需要使用ajax在每一行的每个字段上获取数据,并对每一行进行正常的发布。您还可以使用ajax发布行,页面将不会刷新。然而,我建议使用ajax获取数据,并为每一行发出一个正常的post请求。它必须是针对整个表的,然后下一行将进行post。这篇文章只是为了检索信息。底部将有一个提交按钮,它接收所有信息
(Mysql) which populates $textA / $textB for selection and $projectsA
and B
<td align='center'>
<?php if(isset($_POST["text1"])){?>
<select id = "text" name="text1" onchange="this.form.submit()">
<option value=''></option>
<? echo $textA; echo $textB;}
else{?>
<select id = "text" name="text1" onchange="this.form.submit()">
<option value=' '> </option>
<? echo $textB;}?>
</select>
</td>
<td align='center'>
<?php if(isset($_POST["submitForm"])){?>
<select name="projects1" onchange="this.form.submit()">
<option value=' '> </option>
<? echo $projectsA;?>
<? echo $projectsB;}
elseif (isset($_POST["text1"])){?>
<select name="projects1" onchange="this.form.submit()">
<option value=' '> </option>
<? echo $projectsA;?>
<? echo $projectsB;}
else{?>
<select name="projects1">
<option value=' '> </option>
<? }?>
</select>
</td>
<button id="add_row" >Add Row</button>
<button id="delete_row">Delete Row</button>
<script>
$(document).ready(function(){
var i=1;
$("#add_row").click(function(){
$('#addr'+i).html($('#addr0').html());
$('#timeTable').append('<tr id="addr'+(i+1)+'"></tr>');
i++;
$("tr:even").css("background-color", "#A71B95");
$("tr:odd").css("background-color", "#F8D3F3");
});
$("#delete_row").click(function(){
if(i>1){
$("#addr"+(i-1)).html('');
i--;
}
});
$('#text').change(function(){
var text1 = $('#text').val();
$.post("website.php",
{text1: text},
function(text1)
{
document.getElementsByName('text1').value= text1;
}
);
});
});
</script>