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