2013-09-28 18 views
5

से प्रतिक्रिया प्राप्त करें हाय मेरे पास एक php फ़ाइल है जिसे मेरे AJAX/jquery कोड द्वारा बुलाया जाता है जब एक पंक्ति को मेरी एसक्यूएल तालिका में डाला जाता है। हालांकि मुझे यह जानने के लिए कुछ प्रकार की फीडबैक चाहिए कि सम्मिलन सफल रहा या नहीं।AJAX/Jquery - php फ़ाइल

ajax/jQuery:

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

पीएचपी: यहाँ मेरे वर्तमान कोड है

$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; 
+0

कीमत कहां है निपटने बनाम कनेक्ट करने के लिए और अधिक कर सकते हैं? –

+0

'$ echo'' echo' होना चाहिए। –

+0

@ शेखहेरा फिक्स्ड। इसके अलावा कीमत – Matt9Atkins

उत्तर

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 चर रहा है, मैं इसे नहीं देखा जाँच कर सकते हैं और के रूप में मैं टिप्पणी में mrntioned कि $echoecho होना चाहिए।

+1

मुझे लगता है कि यह उल्लेख करना महत्वपूर्ण है कि 'त्रुटि' के पास 'असफल' प्रतिक्रिया के साथ कुछ भी नहीं है लेकिन एक असफल अनुरोध है। प्राप्त कोई भी प्रतिक्रिया 'सफलता' हैंडलर की ओर ले जाती है, 'त्रुटि' केवल 400 के अलावा स्थितियों के लिए बुलाया जाता है। इसके अलावा, वे समान पैरामीटर भी नहीं लेते हैं। – Kiruse

+0

@ Derija93, मैंने यहां कोई त्रुटि विधि नहीं जोड़ा है, जिसके बारे में आप बात कर रहे हैं? –

+0

मुझे सफलता या विफलता के बावजूद कोई चेतावनी संदेश नहीं मिला – Matt9Atkins

1

पीएचपी अनुभाग में आप यह कर सकते हैं:

$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(); 
7

प्रमुख उदाहरण के लिए, आप प्रतिक्रिया जावास्क्रिप्ट

$.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(); 

?> 
+1

मेरी विनम्र राय में सबसे अच्छा समाधान – drukaman

संबंधित मुद्दे