很新的php/mysql和jquery,我无法让我的表单数据上传到我的MySQL数据库。我尝试了几种不同的方法并完成了我的研究,但是我在网上找到的所有建议都不适合我,这就是我在这里发布的原因。因此,这里是我最近失败的方法:获取我的表单数据发布到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;
}
}
?>
你们可以提供任何帮助将非常感激。
感谢
UPDATE响应杰伊·布兰查德:
我只是跑在我的浏览器的控制台。我得到的唯一错误是:
SCRIPT1004: Expected ';'
参考我的JS的第一行:
$function() {
...
更新2:
刚刚更新我的代码,以反映我最近的变化...在我至少可以触发提交点击的情况下,字段将被清空,表明至少发生了一些事情。然而,随着我的新一轮的变化,甚至没有触发,所以我仍然相当卡住
请勿使用mysql_ *。它被弃用和不安全,并将从未来版本的PHP中删除。此外,您可以广泛开放SQL注入。您需要使用PDO或MySQLi并使用预准备语句。 –
你没有提到什么问题? –
此外,你应该从您的查询中删除公告ID如果在数据库中它是自动增量,因为数据库会警告你列错误的整数值公告ID –