【发布时间】:2013-03-08 17:03:06
【问题描述】:
这就是我想要做的...... 当用户单击表单中的提交按钮时(我使用的 jQuery Form plugin 工作正常),这应该将 textarea 的内容保存在数据库中。 JavaScript 警报应显示数据库中最后更新的 ID。但是由于某种原因,虽然数据正在保存,但 JavaScript 却无法正常工作,不知道为什么。
HTML 表单(index.html):
<form action="submit.php" method="post" id="myForm">
<input type="submit" name="submit" value="Submit"/>
<div id="edit-box">
<textarea id="editor" name="editor"><?php echo $content; ?></textarea>
</div>
</form>
提交表单(submit.php):
<?
// connect to the database
include('connect-db.php');
// get form data, making sure it is valid
$submit_date = date("Ymd");
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor']));
$ip_address = getRealIPAddress(); //$_SERVER['REMOTE_ADDR'];
// check to make sure both fields are entered
if ($content != '') {
// save the data to the database
mysql_query("INSERT source SET submit_date='$submit_date', ip='$ip_address', content='$content'");
or die(mysql_error());
$lastrow = mysql_query("SELECT MAX(id) FROM source");
echo '<script type="text/javascript"> alert("' . echo $lastrow . '");</script>';
}
?>
另外,我每次都要关闭连接吗?
【问题讨论】:
-
您应该始终关闭连接。总是。此外,您在连接时使用
echo;把它拿出来,这不是 echo 的工作原理。 -
您使用的是an obsolete database API,应该使用modern replacement。
-
"JavaScript 不工作" — 我们看不到 JavaScript。查看 PHP 输出的内容。它会生成你想要的 JavaScript 吗?如果没有,这就是你应该问的问题。是这样,然后向我们展示 JavaScript 而不是 PHP。
-
mysql_real_escape_string(htmlspecialchars— 在将数据输出到 HTML 之前,而不是在将其插入数据库之前,对数据运行htmlspecialchars。 -
@Qix 关于为什么要始终关闭连接的任何参考?一旦脚本完成执行,即使是已弃用的 mysql_* 扩展,AFAIK 也会自动关闭连接。
标签: php javascript mysql