我有一个表单,我试图在没有页面刷新的情况下提交,据我所知,jQuery端的所有内容都有效(我的意思是代码结束时的警报通过,所以我'假设一切正常运行,但由于它实际上并没有出现在WAMPserver数据库中,因此我的php代码一定存在问题。
无论如何,jquery代码的重要部分显示了提交到php页面的内容 - 然后是php页面的代码,其中所有内容都应该发送到数据库。
//set form data to variable (including website)
if(undefined != projectInfo && typeof website != 'undefined' && (website != 'http://' || website != '') && null != website) {
var dataString = 'name='+ name + '&email=' + email + '&website=' + website + '&info=' + projectInfo;
var radioType = $("input.radio1").val();
}
//set form data to variable (excludes website)
else {
var dataString = "name=" + name + "&email=" + email + "&info=" + projectInfo;
var radioType = $("input.radio1").val();
}
//set form data to variable (including chat box)
if(undefined != chitChat && null != chitChat && (chitChat !="what's on your mind?")) {
var dataString = 'name='+ name + '&email=' + email + '&info=' + chitChat;
var radioType = $("input.radio1").val();
}
$.ajax ({
type: "POST",
url: "process.php",
data: dataString,
success: function() {
alert('success!');
}
});
return false;
然后是php代码:
<?php
// Create connection
$con=mysqli_connect("localhost:3306","root","admin","test");
// Check connection
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else {
echo "Connection Successful!";
}
?>
<?php
# Variables for field names.
$_name = $_POST['name'];
$_email = $_POST['email'];
$_request = $_POST['radioType'];
$_website = $_POST['website'];
if(empty $_POST['projectInfo']) {
$_info = $_POST['chitChat'];
}
else {
$_info = $_POST['projectInfo'];
}
# Inserting information into table.
$sql = "INSERT INTO `contactform` (`name`,`email`,'request_type`,`website`,`info`) values (".$_name.",'".$_email.",'".$_request.",'".$_website.",'".$_info.")";
$query = mysql_query($sql);
if (!$query) {
echo "Failed " .mysql_error();
}
else {
echo "Data entered ";
}
?>
现在我不完全确定php代码(不可否认,自从我使用php以来已经有一段时间了,所以我非常生疏)但我认为我的主要问题是php代码中的if语句 - 我不确定我是否允许这样做,当我检查php页面本身(没有提交任何内容)时,我得到了这两个错误:
(!)SCREAM:
忽略错误抑制(!)解析错误:语法错误,意外'$ _POST'(T_VARIABLE),期待'('在第22行的process.php
我不完全确定第一个意思是什么,但我猜第二个确实与if statmeent有关 - 虽然我不能为我的生活弄清楚它想说的是什么。 / p>
我知道这有点可以接受,所以我不希望很快得到答案,但任何帮助都会受到赞赏,我愿意提供额外的代码。
(为了完成起见,这里是jsfiddle,其中包含页面本身的所有代码)
答案 0 :(得分:1)
您必须在此处使用mysqli
,因为您使用mysqli
进行数据库连接
$query = mysqli_query($con,$sql);
此外,您忘记了()
此处导致错误
if(empty ($_POST['projectInfo']))
^ ^
答案 1 :(得分:0)
呃,不知道这是什么导致你的错误.... 但你正在使用mysqli顶级....
所以你需要改变..
$query = mysql_query($sql);
要...
$query = mysqli_query($con, $sql);
答案 2 :(得分:0)
您得到的错误是在:
中省略“()”empty $_POST['projectInfo'] --> empty($_POST['projectInfo'])
你也是,将“mysqli_ ”与“mysql _ ”混合,所以改变:
mysql_query($sql)
至mysqli_query($con, $sql)
最后,请注意您实际上并没有传递任何'request_type',因此代码可能无法按预期工作(即使在修复前2后)。