Php $.ajax POST的响应包括我以前做过的sql插入,我不';我不知道为什么
我的网页使用jquery代码调用一个php文件,该文件在mysql BD中插入一行。问题是我应该从服务器获取JSON格式的数据,但我收到了预期的数据,但我也收到了php文件中发送到mysql DB的sql指令。为什么? jquery代码:Php $.ajax POST的响应包括我以前做过的sql插入,我不';我不知道为什么,php,jquery,ajax,Php,Jquery,Ajax,我的网页使用jquery代码调用一个php文件,该文件在mysql BD中插入一行。问题是我应该从服务器获取JSON格式的数据,但我收到了预期的数据,但我也收到了php文件中发送到mysql DB的sql指令。为什么? jquery代码: $("#botoPreReserva").click(function(){ var dataArribada=$("#dataArribada").val(); var dataSortida=$("#data
$("#botoPreReserva").click(function(){
var dataArribada=$("#dataArribada").val();
var dataSortida=$("#dataSortida").val();
var firstname=$("#firstname").val();
var lastname=$("#lastname").val();
var email=$("#email").val();
var message=$("#message").val();
var req=$.ajax({
method:"POST",
url:"comprovardates.php",
data:{arribada:dataArribada,
sortida:dataSortida,
firstname:firstname,
lastname:lastname,
email:email,
message:message},
dataType:"json"
});
req.done(function(result){
if(result.error != "0"){
$("#resultatPreReserva").text(result.errorTexte);
}
else{
$("#resultatPreReserva").text(" ");
//posar el calendari a l'inici de la preReserva
$.post("nomMes.php", {mesN:result.mesPre },
function(result2){
$("#mes").text(result2);
});
$("#any").text(result.anyPre);
$("#taulaCalendari").load("calendari.php",{actualmonth:result.mesPre, actualyear:result.anyPre});
alert(result.result);
}
});
req.fail(function(jqXHR, textStatus){
alert(textStatus);
});
这是一个comprovardades.php简化版:
$calendari= new Calendar(SERVERNAME,DBNAME,USERNAME,PASSWORD);
//conectam a la base de dades
$calendari->connect();
// onsultam reserves d'agost del 2016
$min= new DateTime("2016-11-01");$max= new DateTime("2016-11-31"); $tipus="preReserva";
$event = new Event(); $event->setEntrada($min); $event->setSortida($max); $event->setTipus($tipus);
$eventList=$calendari->insertEvent($event);
echo json_encode(array("error"=>"0","errorTexte"=>"prova","result"=>"result","mesPre"=>"01","anyPre"=>"2016"));
其中connect():
其中insertEvent():
我对jquery的回复是这样的
插入储量(entrada、sortida、tipus、summary)值('2016-11-01'、'2016-12-01'、'preReserva'、'
){“error”:“0”,“errorTexte”:“prova”,“result”:“result”,“mesPre”:“01”,“anyPre”:“201>6”}
我发现解决这个问题的唯一方法是在php文件中的echo之前使用ob_clean,但我认为这是一种更好的方法。我是个笨蛋,不知道我是否漏掉了什么
谢谢,where insertEvent():
注释掉查询的echo语句
function insertEvent(Event $event){
$sql="INSERT INTO reserves(entrada,sortida,tipus,summary)"
. " VALUES ('".$event->getEntrada()->format('Y-m-d')."','".$event->getSortida()->format('Y-m-d')."','".$event->getTipus()."','".$event->getSummary()."')";
//echo $sql; // commented this echo
try{
$this->conn->exec($sql);
error_log("SQL:".$sql);
}
catch(PDOException $e)
{
error_log("INSERT failed " . $e->getMessage());
}
}
}
答案少于30个字符:(您有
echo$sql
注释或删除echo$sql;并在响应中返回一些适当的结果。感谢您的回答。我一直在寻找一个超级复杂的答案,但错过了此echo.:/
function insertEvent(Event $event){
$sql="INSERT INTO reserves(entrada,sortida,tipus,summary)"
. " VALUES ('".$event->getEntrada()->format('Y-m-d')."','".$event->getSortida()->format('Y-m-d')."','".$event->getTipus()."','".$event->getSummary()."')";
echo $sql;
try{
$this->conn->exec($sql);
error_log("SQL:".$sql);
}
catch(PDOException $e)
{
error_log("INSERT failed " . $e->getMessage());
}
}
}
function insertEvent(Event $event){
$sql="INSERT INTO reserves(entrada,sortida,tipus,summary)"
. " VALUES ('".$event->getEntrada()->format('Y-m-d')."','".$event->getSortida()->format('Y-m-d')."','".$event->getTipus()."','".$event->getSummary()."')";
//echo $sql; // commented this echo
try{
$this->conn->exec($sql);
error_log("SQL:".$sql);
}
catch(PDOException $e)
{
error_log("INSERT failed " . $e->getMessage());
}
}
}