我会慢慢来,不是为了你……是为了我。我真的不擅长做这件事。我想要做的是从 HTML 表实时更新 MySQL 数据库。这就是每个的构建方式。
echo ("<td id=\"callsign:$row[recordID]\" contenteditable=\"true\"
onClick=\"showEdit(this)\"
onBlur=\"saveToDatabase(this,'callsign',$row[recordID])\"
style='text-transform:uppercase'>
$row[callsign]</td>");
这是它的渲染方式。
<td id="callsign:6" contenteditable="true" onclick="showEdit(this)" onblur="saveToDatabase(this,'callsign',6)" style="text-transform: uppercase; background-color: rgb(253, 253, 253); background-position: initial initial; background-repeat: initial initial;">
KA0SXY</td>
这是被调用的函数。
function saveToDatabase(editableObj,column,id) {
$(editableObj).css("background","#FFF url(loaderIcon.gif) no-repeat right");
$.ajax({
url: "saveedit.php",
type: "POST",
data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id,
success: function(data){
$(editableObj).css("background","#FDFDFD");
}
});
}
这是 PHP。
<?php
require_once "dbConnectDtls.php";
$result = mysql_query("UPDATE NetLog set " . $_POST["column"] . " = '".$_POST["editval"]."' WHERE recordID=".$_POST["id"]);
echo $result;
?>
当我从这个单元格切换到下一个单元格时,唯一执行的是 .gif。 MySQL 没有得到更新,我做错了什么?
提前感谢您没有把我当傻瓜,而是帮助我学习。
跟进建议:
恐怕我在这方面没有取得任何进展。有人愿意实际编写一个我可以遵循的工作示例吗?
最佳答案
对于一个新手来说,在你的脚本中你应该注意很多事情:
- 首先,您必须避免将 $_POST 值直接插入到查询中,因为这可能会导致 sql injection。问题。
- 你应该使用PDO或 MySQLi出于同样偏执的原因执行查询。
- 你应该保持一致。为什么在使用 JQuery 时使用 .innerhtml?你可以使用 $(editableObj).html()
- 您没有显示任何 javascript 错误:您正在查看控制台吗?尝试右键单击页面正文并选择“检查元素”,然后单击出现的框架的“控制台”选项卡。
此外,您没有打印返回的“数据”变量以查看服务器中是否是预期结果。你可以这样做:
控制台日志(数据);
除此之外,您的脚本中的一切看起来都不错 ;)
关于php - 使用 AJAX 和 PHP 更新 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564181/