2016-07-04 11 views
1

AJAXおよびPHPスクリプトを使用してデータを追加するにはどうすればよいですか?PDOを使用してPHPを使用してデータAJAXを挿入できない

HTML

<form method="POST" > 
<table> 
    <tr> 
     <td>Enter Question:</td> 
     <td><input type="text" id="question" name="question"></input></td> 
    </tr> 
    <tr> 
     <td colspan="2" align="center"><button name="add-question" id="add-question">+Add Question</button></td> 
    </tr> 
</table> 

これは)JS

$(document).ready(function() { 
$('#add-question').click(function (e) { 
    var question = $('#question').val(); 
    var dataString = "question="+question; 
    $.ajax({ 
     type: "POST", 
     url: "add-question.php", 
     data: dataString, 
     success: function (data) { 
      alert(data); 
     } 
    }); 
}); 

}です。

PDO

<?php 
if (isset($_POST['add-question'])) { 
    include 'db.php'; 
    $question = $_POST['question']; 
    $query = ""; 
    $stmt = $dbh->prepare("INSERT INTO question (name, choices1, choices2, choices3, choices4, answer) VALUES (:name, ':choices1', ':choices2', ':choices3', ':choices4', ':answer')"); 
    $stmt->bindParam(':name', $question); 
    if ($stmt->execute()) { 
     echo "Quiz has been added"; 
    } else { 
     echo "Error adding quiz"; 
    } 
} 

を使用してPHPスクリプト?>

また、私はjqueryのファイルが含まれています。しかし、なぜそれが働かないのかわかりません。私を助ける人に感謝します。

+1

に変更し、それはあなたには、ブラウザのデベロッパーコンソールの[ネットワーク]タブを確認しましたか?投稿していると思われる内容を投稿していますか? – Terminus

+0

それは '

答えて

0

"add-question"というPOST属性がないため、この行は失敗します。

if (isset($_POST['add-question'])) {

if (isset($_POST['question'])) {

+0

を働いていますそれはクリックかどうかです。そのおかげで、issetを共有してもらえますか? :)ありがとう:) – Raptor

+0

うわー、それは今働いている私はそれが起こったのか分からないていないが、私はISSETがあればボタンadd_questionをトリガするためにあると思った、だけでなく、今のおかげ:) –

+0

ええ、そのボタンを含むフォームが送信されていない、それは "追加の質問"を提出しないカスタムハンドラを介して処理されています。 .ajaxデータ属性を変更して、ページにフォームが1つしかないと仮定して '$( 'form')。serialize()を使用することができます。しかし、 '$ _POST ['question']'を確認するだけで十分です。 – Matt

関連する問題