使用jQuery/AJAX不会触发PHP文件

使用jQuery/AJAX不会触发PHP文件,php,jquery,ajax,Php,Jquery,Ajax,今天有个奇怪的问题。所以我尝试使用AJAX将数据插入数据库,这样页面就不需要重新加载就能看到更改。但是当我尝试插入数据时,不知道如何放置它,insert.php文件不会被“触发”,例如,没有显示“Hello Im insert.php”行。但是ajax代码工作正常,成功块被触发 表格: insert.php: <?php error_reporting(0); require 'db/connection.php'; echo 'Hello Im ins

今天有个奇怪的问题。所以我尝试使用AJAX将数据插入数据库,这样页面就不需要重新加载就能看到更改。但是当我尝试插入数据时,不知道如何放置它,insert.php文件不会被“触发”,例如,没有显示“Hello Im insert.php”行。但是ajax代码工作正常,成功块被触发

表格:

insert.php:

    <?php
    error_reporting(0);
    require 'db/connection.php';

    echo 'Hello Im insert.php';

    if(!empty($_POST)){
        print_r($_POST);
        if(isset($_POST['inputName'],$_POST['inputPrice'],$_POST['inputStore'],$_POST['inputDate'])){
        $name = trim($_POST['inputName']);
        $price = trim($_POST['inputPrice']);
        $store = trim($_POST['inputStore']);
        $date = trim($_POST['inputDate']);

        if(!empty($name) && !empty($price) && !empty($store) && !empty($date)){
            $insert = $db->prepare("INSERT INTO prekes(name, price, store, date) VALUES (?, ?, ?, ?)");
            $insert->bind_param('ssss',$name, $price, $store, $date);

            if($insert->execute()){
                echo 'INSERTED';
            }
        }
    }
};
       if(!empty($name) && !empty($price) && !empty($store) && !empty($date)){
            $insert = $db->prepare("INSERT INTO prekes(name, price, store, date) VALUES (?, ?, ?, ?)");
            $insert->bind_param('ssss',$name, $price, $store, $date);

            if($insert->execute()){
                echo 'INSERTED';
            }else{
                echo 'SOMETHING WRONG';
            }
        }else{
            echo 'ALL DATA CAN'T EMPTY';
        }

要更改PHP脚本echo中的数据,您需要像这样更改success函数

    success: function(data) {
        $("#success").show();
        alert(data);
    },
成功 类型:函数(任何数据、字符串textStatus、jqXHR、jqXHR) 请求成功时要调用的函数。该函数传递三个参数:从服务器返回的数据,根据dataType参数或dataFilter回调函数(如果指定)进行格式化;描述状态的字符串;和jqXHR(在jquery1.4.x中,XMLHttpRequest)对象。从jQuery1.5开始,success设置可以接受一系列函数。每个函数将依次调用。这是一个Ajax事件

您可以在此处找到有关

的更多信息,可能是这一行:

error_reporting(0)
此行会导致任何致命错误停止脚本,但页面将 返回状态代码为200(OK)的空响应,这将导致ajax触发成功事件,即使服务器端发生错误

$('#forma').submit(function(event) {
    var name = $("#inputName").val();
    var price = $("#inputPrice").val();
    var store= $("#inputStore").val();
    var date = $("#inputDate").val();

    $.ajax({
        type: "POST",
        url: "insert.php",
        data: {
            inputPavadinimas: name,
            inputKaina: price,
            inputParduotuve: store,
            inputData: date,
        },
        success: function(data) {
            $("#success").html(data);
            $("#success").show();
            alert(data);
        },
        error: function(data){
            alert('error');
        }
    });
    event.preventDefault();   
});
增加了
$(“#success”).html(数据),成功客户端与insert.php上的成功不同

并更改此部分(insert.php):


记录未插入或仅回显值未打印?哪一个是您的问题?您的isset语句的计算结果不是true,因为您没有传递这些参数,这些参数包含此字符
}insert.php的最后一行。这是php的有效字符吗?
$('#forma').submit(function(event) {
    var name = $("#inputName").val();
    var price = $("#inputPrice").val();
    var store= $("#inputStore").val();
    var date = $("#inputDate").val();

    $.ajax({
        type: "POST",
        url: "insert.php",
        data: {
            inputPavadinimas: name,
            inputKaina: price,
            inputParduotuve: store,
            inputData: date,
        },
        success: function(data) {
            $("#success").html(data);
            $("#success").show();
            alert(data);
        },
        error: function(data){
            alert('error');
        }
    });
    event.preventDefault();   
});
       if(!empty($name) && !empty($price) && !empty($store) && !empty($date)){
            $insert = $db->prepare("INSERT INTO prekes(name, price, store, date) VALUES (?, ?, ?, ?)");
            $insert->bind_param('ssss',$name, $price, $store, $date);

            if($insert->execute()){
                echo 'INSERTED';
            }else{
                echo 'SOMETHING WRONG';
            }
        }else{
            echo 'ALL DATA CAN'T EMPTY';
        }