Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要一个表,可以添加一行,$\u POST,而不在选择时清除内容_Javascript_Php_Arrays_Post - Fatal编程技术网

Javascript 我需要一个表,可以添加一行,$\u POST,而不在选择时清除内容

Javascript 我需要一个表,可以添加一行,$\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

我有个问题。我希望我的网页允许表中有多个条目。但是,某些列字段用于搜索数据库并返回影响以下字段的值。目前可以完成一个条目。然而,我想把它放到一个表中,在这个表中我有一个addrow按钮,我已经添加了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>