通过PHP提交ajax表单而没有结果


submitting ajax form through php without results?

我有一个表单,我试图提交没有页面刷新,据我所知,一切在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页面本身(不提交任何东西)我得到这两个错误:

(!)

错误抑制被忽略

(!)解析错误:语法错误,意外的'$_POST' (T_VARIABLE),期望'('在process.php的第22行

我不完全确定第一个是什么意思,但我猜第二个肯定与if语句有关——尽管我一辈子也弄不清楚它想说什么。

我知道这有点难以接受,所以我不期望很快得到答案,但是任何帮助都会很感激,我愿意提供尽可能多的额外代码。

(为了完成,这里是一个包含页面本身所有代码的jsfiddle)

这里必须使用mysqli,因为您使用mysqli进行数据库连接

$query = mysqli_query($con,$sql);

你还忘了这里的()这会导致错误

if(empty ($_POST['projectInfo']))
         ^                     ^

呃,不知道这是不是导致你出错的原因....但是你在上面使用mysqli ....

所以你需要改变…

 $query = mysql_query($sql);

……

 $query = mysqli_query($con, $sql);

您得到的错误是由于在:

中遗漏了"()"
empty $_POST['projectInfo']  -->  empty($_POST['projectInfo'])

你是,也把"mysqli_"answers"mysql_"混在一起,所以更改:

mysql_query($sql) to mysqli_query($con, $sql)

最后,请注意您实际上并没有传递任何"request_type",因此代码可能不会像预期的那样工作(即使在修复了前2之后)。