Hi I have a php file that when called by my ajax/jquery code inserts a row into a mySQL table. However I want some sort of feedback to know whether the insertion was successfull or not. Here is my current code:
嗨我有一个php文件,当我的ajax / jquery代码调用时,会在mySQL表中插入一行。但是,我想要某种反馈,以了解插入是否成功。这是我目前的代码:
ajax/jquery:
阿贾克斯/ jQuery的:
$.ajax({
url: "update.php",
success: function(){
alert("success");
},
error:function(){
alert("failure");
}
});
PHP:
PHP:
$conn = "";
try {
$conn = new PDO( "mysql:host=XXX;dbname=XXX", "XXX", "XXX");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch ( PDOException $e ) {
echo "Cannot connect to database, try again later";
}
$stmt = $conn->prepare("INSERT INTO data (price) VALUES (:price)");
$stmt->bindParam(":price", $price);
$stmt->execute();
$conn=null;
3 个解决方案
#1
6
To get a feedback and send it to the jQuery.ajax
you may use
要获得反馈并将其发送到jQuery.ajax,您可以使用
if($stmt->execute()) { // returns true on success
exit('success'); // Prints success and exit the script
}
else{ // returns false on fail
exit('error'); // Prints error and exit the script
}
In the client side, in your success
callback
在客户端,在您的成功回调中
success: function(data){
alert(data); // either error or success
}
Or you may check it like
或者你可以检查一下
if(data == 'success') {
// ok
}
Also, where is your $price
variable, i didn't see it and as i mrntioned in comment that $echo
should be echo
.
另外,你的$ price变量在哪里,我没有看到它,正如我在评论中所说的那样$ echo应该是echo。
#2
7
principal example, you can do much more to connect feedback vs javascript handling
主要的例子,你可以做更多的事情来连接反馈和javascript处理
$.ajax({
url: "update.php",
data: $('#form_id').serialize(),
dataType: "json",
timeout: 15000,
success: function(response){
switch(response.status){
case 'saved':
alert(response.message); // do what you want
break;
case 'empty':
alert(response.message);
break;
default:
alert("unknown response");
}
},
error:function(){
alert("failure");
}
});
// remote php file
<?php
// on database success or whatever
$return_arr["status"] = 'saved';
$return_arr["message"] = utf8_encode("Your data ".$name." was saved");
echo json_encode($return_arr);
exit();
?>
#3
1
In PHP section you can do this:
在PHP部分,您可以这样做:
$conn = "";
try {
$conn = new PDO( "mysql:host=XXX;dbname=XXX", "XXX", "XXX");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch ( PDOException $e ) {
echo "Cannot connect to database, try again later";
}
$stmt = $conn->prepare("INSERT INTO data (price) VALUES (:price)");
$stmt->bindParam(":price", $price);
$stmt->execute();
$count = $stmt->rowCount();// Returns the number of rows affected by the last SQL statement
$conn=null;
if ($count > 0)
{
$res = "success";
}
else
{
$res = "error";
}
//maybe you need to encode the result to use in your js ajax functions!
json_encode($res);
exit();
#1
6
To get a feedback and send it to the jQuery.ajax
you may use
要获得反馈并将其发送到jQuery.ajax,您可以使用
if($stmt->execute()) { // returns true on success
exit('success'); // Prints success and exit the script
}
else{ // returns false on fail
exit('error'); // Prints error and exit the script
}
In the client side, in your success
callback
在客户端,在您的成功回调中
success: function(data){
alert(data); // either error or success
}
Or you may check it like
或者你可以检查一下
if(data == 'success') {
// ok
}
Also, where is your $price
variable, i didn't see it and as i mrntioned in comment that $echo
should be echo
.
另外,你的$ price变量在哪里,我没有看到它,正如我在评论中所说的那样$ echo应该是echo。
#2
7
principal example, you can do much more to connect feedback vs javascript handling
主要的例子,你可以做更多的事情来连接反馈和javascript处理
$.ajax({
url: "update.php",
data: $('#form_id').serialize(),
dataType: "json",
timeout: 15000,
success: function(response){
switch(response.status){
case 'saved':
alert(response.message); // do what you want
break;
case 'empty':
alert(response.message);
break;
default:
alert("unknown response");
}
},
error:function(){
alert("failure");
}
});
// remote php file
<?php
// on database success or whatever
$return_arr["status"] = 'saved';
$return_arr["message"] = utf8_encode("Your data ".$name." was saved");
echo json_encode($return_arr);
exit();
?>
#3
1
In PHP section you can do this:
在PHP部分,您可以这样做:
$conn = "";
try {
$conn = new PDO( "mysql:host=XXX;dbname=XXX", "XXX", "XXX");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch ( PDOException $e ) {
echo "Cannot connect to database, try again later";
}
$stmt = $conn->prepare("INSERT INTO data (price) VALUES (:price)");
$stmt->bindParam(":price", $price);
$stmt->execute();
$count = $stmt->rowCount();// Returns the number of rows affected by the last SQL statement
$conn=null;
if ($count > 0)
{
$res = "success";
}
else
{
$res = "error";
}
//maybe you need to encode the result to use in your js ajax functions!
json_encode($res);
exit();