5

こんにちは、私の ajax/jquery コードによって呼び出されると、行を mySQL テーブルに挿入する php ファイルがあります。ただし、挿入が成功したかどうかを知るために、何らかのフィードバックが必要です。これが私の現在のコードです:

ajax/jquery:

$.ajax({
    url: "update.php",
    success: function(){
        alert("success");    
    },
    error:function(){
        alert("failure");
    }
});

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;
4

3 に答える 3

8

主な例として、フィードバックと 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();

?>
于 2013-09-28T23:22:16.610 に答える
6

フィードバックを取得して に送信するには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
}

クライアント側では、successコールバックで

success: function(data){
    alert(data); // either error or success
}

または、次のようにチェックすることもできます

if(data == 'success') {
    // ok
}

また、あなたの$price変数はどこにありますか、私はそれを見ませんでし$echoecho

于 2013-09-28T23:09:35.973 に答える
1

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();
于 2013-09-28T23:11:30.743 に答える