使用PHP插入数据AJAX而不使用PDO

使用PHP插入数据AJAX而不使用PDO,php,jquery,Php,Jquery,如何使用AJAX和PHP脚本添加数据 HTML })) 使用PDO的PHP脚本 <?php if (isset($_POST['add-question'])) { include 'db.php'; $question = $_POST['question']; $query = ""; $stmt = $dbh->prepare("INSERT INTO question (name, choices1, choices2, choices3, c

如何使用AJAX和PHP脚本添加数据

HTML

}))

使用PDO的PHP脚本

<?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";
    }
}

您没有名为“添加问题”的POST属性,因此此行将失败

if(isset($\u POST['add-question']){

换成


if(isset($\u POST['question']){

您没有名为“add question”的POST属性,因此此行将失败

if(isset($\u POST['add-question']){

换成


if(isset($\u POST['question'])){

你检查过浏览器开发人员控制台的“网络”选项卡吗?你确定你正在发布你认为正在发布的内容吗?它现在可以工作了吗?谢谢:)你检查过浏览器开发人员控制台的“网络”选项卡吗?你确定你正在发布你认为正在发布的内容吗?它现在可以工作了吗有
name=“添加问题”
哇,它现在开始工作了,我不知道它是怎么发生的,但我认为如果单击或不单击,isset会触发按钮添加问题。谢谢你介意分享isset吗?:)谢谢:)是的,但是包含该按钮的表单没有提交,它是通过一个自定义处理程序处理的,该处理程序不提交“添加问题”。您可以将.ajax数据属性更改为使用
$('form').serialize()
,而不是假设页面上只有一个表单。但这里只需检查
$\u POST['question']
就足够了。为了进一步解释,该ajax调用发送的唯一POST变量都是在该“数据”中定义的属性,因此您只发送“问题”。在常规表单post中,将发送包括按钮在内的所有变量。您还可以使用我之前评论中的方法更改ajax调用以发送表单中的所有变量。@Raptor按钮会发送,但他使用ajax来执行实际post。按钮的类型不是=submit,因此不会实际提交表单(懒得去检查)嗯,
确实有
name=“add question”
哇,它现在工作了,我不知道它是怎么发生的,但我想如果它点击与否,isset会触发按钮add_question。谢谢你介意分享isset吗?:)谢谢:)是的,但是包含该按钮的表单没有被提交,而是通过一个自定义处理程序进行处理,该处理程序不提交“添加问题”。您可以将.ajax数据属性更改为使用
$('form')。serialize()
而不是假设页面上只有一个表单。但是只需检查
$\u POST['question']
在这里就足够了。再解释一下,该ajax调用发送的唯一POST变量是在“data”属性中定义的,因此您只发送“question”。在常规表单post中,将发送包括按钮在内的所有变量。您还可以使用我之前评论中的方法更改ajax调用以发送表单中的所有变量。@Raptor按钮会发送,但他使用ajax来执行实际post。按钮的类型不是=submit,因此不会实际提交表单(懒得去检查)
$(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);
        }
    });
});
<?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";
    }
}