对 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:
刚刚更新了我的代码以反射(reflect)我最近的更改......在我至少可以触发提交点击之前甚至字段会变空,表明至少发生了一些事情。然而,随着我新一轮的改变,甚至没有触发,所以我仍然很困
最佳答案
在你的 php 中你犯了一个错误,你的 echo
语句不是 jason_encode
而不是 json_encode
。
另外
如果在数据库中它是自动递增的,您还应该从查询中删除 AnnouncementID
,因为数据库会警告您 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(){
关于php - 获取我的表单数据以发布到 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22049481/