如何通过在HTML表中使用AJAX来一致地显示php变量?

时间:2018-08-01 09:00:50

标签: php jquery html ajax html-table

我正在用PHP训练AJAX。 我的目标是在用户在单元格A中输入一些值后立即在HTML表的单元格B中显示PHP变量(然后PHP计算并存储在变量数据中以待显示)。

任务逻辑的说明: enter image description here

行数不是恒定的,取决于用户。

现在,我的show.js AJAX脚本和HTML表仅在表的第一行中显示计算的数据。我需要将这些数据显示在所有行中。

这是我的脚本:

  1. show.js:

    function showEdit(editableObj) {
     $(editableObj).css("background","#FFF");
    } 
    
    function saveToDatabase(editableObj,column,id) {
      $(editableObj).css("background","#FFF url(loaderIcon.gif) no-repeat right");
      $.ajax({
       url: "show.php",
       type: "POST",
       dataType: "text",
       data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id,
       success: function(data){
    
       $(editableObj).css("background","#FDFDFD");
    
       $("#one").text(data);
       $("#two").text(data);
       $("#three").text(data);
      } 
    }); 
    }
    
  2. table.php:

     <tbody>
     <?php
       foreach($show as $k=>$value) {     
         $name = $value['name']);
         $surname = $value['surname']);
     ?>
     <div id="birthday-data">
     <tr class="table-row">
     <td aria-label="Name"> <?php echo $name;?></td>
     <td aria-label="Surname"><?php echo $surname;?></td>
     <td aria-label="Event date"><?php echo $value['birthday']; ?></td>
    
     <td aria-label="First notification" contenteditable="true" onBlur="saveToDatabase(this,'select1','<?php echo $show[$k]["id"]; ?>')" onClick="showEdit(this);"><?php echo $show[$k]["select1"]; ?></td>
     <td id="one"><?php echo $value['day_remind1']; ?></td>
     <td aria-label="Second notification" contenteditable="true" onBlur="saveToDatabase(this,'select2','<?php echo $show[$k]["id"]; ?>')" onClick="showEdit(this);"><?php echo $show[$k]["select2"]; ?></td>
     <td id="two"><?php echo $value['day_remind2']; ?></td>
     <td aria-label="Third notification" contenteditable="true" onBlur="saveToDatabase(this,'select3','<?php echo $show[$k]["id"]; ?>')" onClick="showEdit(this);"><?php echo $show[$k]["select3"]; ?></td>
     <td id="three"><?php echo $value['day_remind3']; ?></td>
     <td align='center'>
     <span class='delete' id='del_<?php echo $show[$k]["id"]; ?>'><img id="delete_img" src="/download/a/img/delete_icon.png"></span>
     </td>
     </tr>
     </tbody>
    
  3. count.php:

    <?php
    // For first row:
    echo $dateArray[0]; // display in cell id="one"
    echo $dateArray[1]; // display in cell id="two"
    echo $dateArray[2]; // display in cell id="three"
    // For second row:
    echo $dateArray[3]; "one"
    echo $dateArray[4]; "two"
    echo $dateArray[5]; "three"
    

    ?>

现在所有的php变量都显示在表的第一行中。 我在表中分配了td id="two"td id="three"并写了$("#one").text(data); $("#two").text(data); $("#three").text(data);,但认为这是不正确的。

我应该如何告诉AJAX脚本(我猜为指令data)在每行中使用多个数据?

0 个答案:

没有答案