我正在用PHP训练AJAX。 我的目标是在用户在单元格A中输入一些值后立即在HTML表的单元格B中显示PHP变量(然后PHP计算并存储在变量数据中以待显示)。
行数不是恒定的,取决于用户。
现在,我的show.js AJAX脚本和HTML表仅在表的第一行中显示计算的数据。我需要将这些数据显示在所有行中。
这是我的脚本:
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);
}
});
}
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>
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
)在每行中使用多个数据?