1

我有一个表单,我试图在不刷新页面的情况下提交,据我所知,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 有关 - 尽管我一生都无法弄清楚它想说什么。

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

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

4

3 回答 3

1

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

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

您也忘记()了这是导致错误的原因

if(empty ($_POST['projectInfo']))
         ^                     ^
于 2013-06-10T04:36:49.533 回答
0

呃,不知道这是否是导致您的错误的原因....但是您正在使用 mysqli 顶部....

所以你需要改变..

 $query = mysql_query($sql);

至...

 $query = mysqli_query($con, $sql);
于 2013-06-10T04:39:40.730 回答
0

您得到的错误是在以下内容中省略“()”:

empty $_POST['projectInfo']  -->  empty($_POST['projectInfo'])

你也在混合“mysqli_ ”和“mysql_ ”,所以改变:

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

最后,请注意,您实际上并没有传递任何“request_type”,因此代码可能无法按预期工作(即使在修复了前 2 个之后)。

于 2013-06-10T04:49:54.177 回答