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ページ自体を(何も送信せずに)確認すると、次の2つのエラーが表示されます。

( ! ) SCREAM: エラー抑制は無視されました

( ! ) 解析エラー: 構文エラー、予期しない '$_POST' (T_VARIABLE)、22 行目の process.php に '(' が必要です

最初の意味が完全にはわかりませんが、2 番目のステートメントは if ステートメントに関係しているのではないかと推測しています。

私はこれを理解するのが少し難しいことを知っているので、すぐに答えられるとは思っていませんが、何か助けていただければ幸いです.余分なコードが必要なだけ喜んで提供します.

(完成のために、ページ自体のすべてのコードを含むjsfiddleを次に示します)

4

3 に答える 3

1

DB接続mysqliに使用したため、ここを使用する必要がありますmysqli

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

()また、ここでエラーの原因を忘れていました

if(empty ($_POST['projectInfo']))
         ^                     ^
于 2013-06-10T04:36:49.533 に答える
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 に答える
0

ええと、これがあなたのエラーの原因であるかどうかはわかりません....しかし、あなたはmysqliを上で使用しています....

だからあなたは変更する必要があります..

 $query = mysql_query($sql);

に...

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