我有一个html表,显示数据库中的值。我有一个javascript,使我能够编辑这些数据,但后来我无法弄清楚如何使用PHP将其保存回数据库。我找到了一些我应该使用xmlhttprequests的信息,但我不知道如何做到这一点。有什么建议?非常感谢您的帮助。代码如下;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript"><!--
function edit_input(obj) {
var is_checked = obj.checked;
while (obj.tagName!='TR')
obj = obj.parentNode;
var td = obj.getElementsByTagName('TD');
var len = td.length;
if (!is_checked) {
for (var i=0; i<len; i++)
if (td[i].className=='editable')
td[i].innerHTML = td[i].firstChild.value;
} else {
var input;
for (var i=0; i<len; i++)
if (td[i].className=='editable') {
input = document.createElement('INPUT');
input.value = td[i].innerHTML;
td[i].innerHTML = '';
td[i].appendChild(input);
}
}
}
--></script>
</head>
<body>
<table border="1">
<tr>
<th width="56">Branch ID</th>
<th width="75">Branch Name</th>
<th width="75">Branch Personnel</th>
<th width="105">Branch Headquaters</th>
<th width="50">Edit</th>
</tr>
<?php
$result = mysql_query($query );
while ($row= mysql_fetch_array($result)) { ?>
<tr>
<td class="editable"><?php echo $row['branchid'];?></td>
<td class="editable"><?php echo $row['branchname'];?></td>
<td class="editable"><?php echo $row['branchpersonnel'];?></td>
<td class="editable"><?php echo $row['branchhq'];?></td>
<td><input type="checkbox" onclick="edit_inpu(this);">Edit</td>
</tr>
<?php } ?>
<tr><td><input type="submit" name="editbranch" class="button2" value="Update"/></td></tr>
</table>
</body>
</html>
答案 0 :(得分:2)
如果使用jQuery不是问题,可能使用像JEditable这样的解决方案。当您单击表格中的单元格时,它将变为文本字段,当按下进入或离开焦点时,它会向服务器发出Web请求,您可以在其中进行更改。
请参阅示例this jsfiddle脚本。它真的很容易使用。您需要做的唯一其他事情是给表格单元格一个id,它将被发送到您保存它的页面。
答案 1 :(得分:0)
让您的脚本通过XMLHttpRequest
将Ajax请求发送到PHP脚本,该脚本将值保存回数据库。
网址可能是这样的:updatetable.php?row=0&col=0&data=1234
答案 2 :(得分:0)
你可以使用jquery,非常受欢迎。
你必须下载lib并在标题中包含它
http://code.jquery.com/jquery-1.7.min.js
这就是你如何使用jquery的ajax请求:
http://api.jquery.com/jQuery.ajax/
url param是您发送值以保存它们的位置,如帖子。