很新的php / mysql和jquery,我无法将表单数据上传到我的mysql数据库。我尝试了几种不同的方法并完成了我的研究,但我在网上找到的建议都没有为我工作,这就是我在这里发帖的原因。所以这是我最近失败的方法:
在我的索引文件中:
<head>
...
<script type="text/javascript">
$(document).ready(function() {
// Announcement form AJAX submit
$('#announcementForm').submit(function() {
$.ajax({
url: 'ajax.php',
type: 'POST',
dataType: 'json',
data: $(this).serialize(),
success: function(data) {
if (data.error) {
$('#error').css('display', 'block');
} else {
$('#note').show();
$('#error').hide();
$('#fields').hide();
}
}
});
return false;
});
});
</script>
</head>
<body>
...
<form class="dl_form" id="announcementForm" method="post">
<dl>
<dt>Announcement</dt>
<dd><textarea id="Announcement" sytle="width: 300px; height: 150px;" name="Announcement"></textarea></dd>
</dl>
<dl>
<dt>Announcement Type:</dt>
<dd><input type="radio" name="Type" value="schedule">Scheduling</input></dd>
<dd><input type="radio" name="Type" value="general">General</input></dd>
</dl>
<dl>
<dt></dt>
<dd><input type="submit" value="submit" /></dd>
</dl>
</form>
<div id="note">
<p>Announcement posted successfully!"</p>
</div>
<div id="error">You haven't completed all of the required fields</div>
然后在我的ajax.php文件中(出于安全原因,某些行已被替换为“######”):
<?php
//database credentials
$server = '######';
$username = '######';
$password = '######';
$database = '######';
$connect = mysql_connect($server, $username, $password ) or die(mysql_error.'error connecting to db');
//select database
mysql_select_db($database, $connect) or die(mysql_error.'error selecting db');
//$typeValue = $('input:radio[name=Type]:checked').val());
if (!empty($_POST)){
$Announcement = $_POST['Announcement'];
$Type = $_POST['Type'];
if (!empty($Announcement) && !empty($Type) )
{
//insert data into db
mysql_query("INSERT into announcements (AnnouncementID, Type, Announcement)
VALUES ('', '".$Type."', '".$Announcement."')") or die(mysql_error());
}else {
echo json_encode(array(
'error' => true,
'msg' => "You haven't completed all required fields!"
));
exit;
}
}
?>
非常感谢你们提供的任何帮助。
由于
对Jay Blanchard的回应更新:
我刚在浏览器中运行控制台。我得到的唯一错误是:
SCRIPT1004: Expected ';'
参考我的JS的第一行:
$function() {
...
更新2:
刚刚更新了我的代码以反映我最近的更改......在我至少触发提交点击之前,字段将会清空,表明至少发生了一些事情。然而,随着我的新一轮变化,甚至没有那个触发器,所以我仍然非常困难
答案 0 :(得分:4)
在您的php中,您的echo
声明错误而不是jason_encode
而不是json_encode
。
此外
如果在数据库中它是自动递增的,你应该从查询中删除AnnouncementID
,因为db会警告你列AnnouncementID
的错误整数值。
编辑:在您的php部分声明中
mysql_query("INSERT into announcements (AnnouncementID, Type, Announcement)
VALUES ('', '".$Type."', '".$Announcement"')") or die(mysql_error());
您忘记.
之后的连接运算符'".$Announcement
应该是
mysql_query("INSERT into announcements (AnnouncementID, Type, Announcement)
VALUES ('', '".$Type."', '".$Announcement."')") or die(mysql_error());
并在你的jquery而不是
$function() {
使用
$(document).ready(function(){