我需要一个表,该表添加一行$ _POST而不选择时清除内容

时间:2018-08-03 14:01:20

标签: javascript php arrays post

我有一个问题。我希望我的网页允许一个表中有多个条目。但是,某些列字段通过POST搜索数据库并返回影响以下字段的值。当前可以完成一项。但是,我想将其放入一个表中,其中有一个添加了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--;
            }
        });

   });

好吧,直到发生两件事为止。如果我填写第一个字段,它会过帐,然后刷新不会保存表格的页面。我有一个可以正常工作的多个POST站点,即此示例。

$task1 = $_POST["tasks1"];
$task2 = $_POST["tasks2"];
$task3 = $_POST["tasks3"];
$task4 = $_POST["tasks4"];
$task5 = $_POST["tasks5"];
$task6 = $_POST["tasks6"];
$task7 = $_POST["tasks7"];

现在我将其放置在表格的所有其他方面,它可以正常工作。即使刷新后更新另一个框,它也会保留数据。现在,我想知道是否可以将其制作成一个数组。

$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>

因此,在第二行之后,它不再更改背景颜色。

编辑08/08/2018

我尝试使用javascript。这是我目前在php部分中的内容。         $ text = $ _POST [“ text1”];         $ project1 = $ _POST [“ projects1”];

    (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>

这里是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>

因此,我尝试添加新行,然后发布信息,以便它读取第一列更改,然后根据该更改更新第二列的选择。但是,当我添加行时遇到问题,它会刷新页面并清除所有内容。与我添加行后相同。我想添加具有相同功能的行。希望这有助于更好地说明我为什么要发布该帖子,但不作任何更新。而且我希望它进入$ _POST ['text1'],以便它可以运行查询并更新下一列。并再次针对输入的每一行。

1 个答案:

答案 0 :(得分:0)

当您填写第一个字段时,请使用ajax触发您的帖子。这将阻止您的页面刷新。然后,您可以在为整行添加值之后触发普通帖子。