Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

JQuery और JSON का उपयोग करके PHP से जावास्क्रिप्ट में एक सरणी पास करना

मुझे लगता है कि आप जिस JSON की अपेक्षा कर रहे हैं, उसके बजाय आपका PHP एक त्रुटि लौटा रहा है। चूंकि आपके पास dataType: 'json' . है , jQuery प्रतिक्रिया को पार्स करने का प्रयास करता है, लेकिन विफल रहता है। जब ऐसा होता है, तो jQuery success को कॉल नहीं करता है कॉलबैक।

यदि आप कर सकते हैं, तो फ़ायरबग का उपयोग यह देखने के लिए करें कि अजाक्स कॉल द्वारा क्या लौटाया जा रहा है। दूसरा तरीका अस्थायी रूप से dataType: 'html' . में बदलना होगा और फिर अपनी success बदलें को कॉलबैक:

success: function(msg) { alert(msg); }

उम्मीद है कि जब आप देखते हैं कि संदेश वापस आ रहा है, तो यह समस्या की पहचान करने में मदद करेगा। हालांकि एक चीज जो आपको करनी चाहिए, वह उन मामलों को संभालने के लिए कोड जोड़ना है जहां क्वेरी निष्पादित करने में विफल रहती है और जहां डेटाबेस से कोई पंक्ति नहीं लाई जाती है। आप PHP फ़ाइल में निम्न कोड जोड़ सकते हैं:

$result = mysql_query($query, $con);

if (!$result) {
    die('Could not run query: ' . mysql_error($con));
}

if (mysql_num_rows($result) < 1) {
    echo 'null';
    exit;
}

$data = mysql_fetch_row($result);

हालांकि अजाक्स कॉल के साथ कुछ समस्याएं भी हैं:

(1) आप निर्दिष्ट कर रहे हैं contentType: "application/json; charset=utf-8" , लेकिन फिर आप JSON नहीं भेज रहे हैं। आपको कुछ इस तरह करना चाहिए:

data: JSON.stringify({}),

लेकिन अगर आप ऐसा करते हैं, तो आप $_POST . का उपयोग करके सर्वर पर डेटा प्राप्त नहीं कर सकते हैं समारोह। इसलिए, आप contentType . से छुटकारा पाना चाह सकते हैं इसके बजाय सेटिंग। इसे देखें SO उत्तर अधिक जानकारी के लिए।

(2) जब आप dataType: 'json' specify निर्दिष्ट करते हैं , JQuery सफलता कॉलबैक को कॉल करने से पहले किसी ऑब्जेक्ट की प्रतिक्रिया को पार्स करेगा, इसलिए msg पैरामीटर पहले से ही एक वस्तु होना चाहिए। इसलिए, आपको JSON.parse(msg) . पर कॉल नहीं करना चाहिए ।

(3) आप PHP फ़ाइल से एक सहयोगी सरणी लौटा रहे हैं। वह एक जावास्क्रिप्ट ऑब्जेक्ट में परिवर्तित हो जाएगा, एक सरणी नहीं।

मुझे लगता है कि आपको निम्न कोशिश करनी चाहिए:

$.ajax('refreshData.php', {
    type: 'post',
    dataType: 'json',
    data: { },
    cache: false,
    success: function (data) {
        if (data) {
            $('#interface_stats').html('Fatigue: ' + data.fatigue);
        }
    }
});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql मैच के खिलाफ ~ उदाहरण

  2. बड़ी मात्रा में डेटा (लॉगिंग) के लिए क्या MySQL इंजन?

  3. MySQL जाँचता है कि क्या कोई तालिका अपवाद को फेंके बिना मौजूद है

  4. PHP में अजीब छँटाई समस्या, utf8 डेटा के साथ mysql

  5. मैं हाइबरनेट एनोटेशन के साथ जावा दिनांक को DATETIME पर mysql (डिफ़ॉल्ट रूप से इसके TIMESTAMP) में कैसे मैप कर सकता हूं