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

时间:2013-06-10 04:34:48

标签: php jquery forms

我有一个表单,我试图在没有页面刷新的情况下提交,据我所知,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,其中包含页面本身的所有代码)

3 个答案:

答案 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后)。