2011-02-11 9 views
5

पर प्रदर्शित नहीं हो रहा है मैं AJAX के माध्यम से एक PHP पृष्ठ वापस करने की कोशिश कर रहा हूं और यह हमेशा क्रोम में लोड होता है। फ़ायरफ़ॉक्स में, यह लगभग 5% समय लोड करता है, दूसरी बार यह किसी भी जेएस/PHP त्रुटियों के साथ कुछ भी लोड नहीं करता है। मैं सीएसएस के बिना सीधे एचटीएमएल वापस गूंज रहा हूँ।एचटीएमएल फ़ायरफ़ॉक्स

if(geo_position_js.init()){ 
      geo_position_js.getCurrentPosition(displayPosition,error_callback,{enableHighAccuracy:true,options:5000}); 
     } 
     else{ 
      alert("Functionality not available"); 
     } 

     function error_callback(p) 
     { 
      alert('error='+p.message); 
     }  

    function displayPosition(loc) { 
     var mylat = loc.coords.latitude; 
     var mylong = loc.coords.longitude; 
     $.ajax({ 
      type: "POST", 
      url: "distancetest.php", 
      data: "long="+mylong+"&lat="+mylat, 
      success: function(html2){ 
       $('#locationinfo').html(html2); 
       console.log(html); 
      } 
     }); 

    } 

मेरे पीएचपी मूल रूप से यह एक दो बार कर रही है:

यहाँ मेरी अजाक्स है

कुछ ब्राउज़रों में
$query = "SELECT * FROM tbl_geo WHERE cat_id=1"; 
    $result = mysql_query ($query) or die(mysql_error()); 
    echo "<h2>Restaurants</h2>"; 
    while ($row = mysql_fetch_array($result)){ 
     if($row['lat'] != ''){ 
      $distance = distance($_POST['lat'], $_POST['long'], $row['lat'], $row['lng'], "k"); 
      if($distance < 2000){ 
       $attractions[] = array('name' => $row['name'], 'address' => $row['address'], 'distance' => $distance); 
      } 
     } 
    } 
    $attractions = array_sort($attractions,'distance'); 
    $attractions = array_values($attractions); 
    for ($i = 0; $i <= 10; $i++) { 
     if(isset($attractions[$i]['distance'])){ 
      echo 'You are '.$attractions[$i]['distance'].'km away from '.$attractions[$i]['name'].' at '.$attractions[$i]['address'].'<br/>'; 
     } 
    } 

काम करता है, लेकिन दूसरों में कुछ भी नहीं प्रदर्शित करता है। कोई विचार?

अद्यतन: यह फ़ायरफ़ॉक्स में भौगोलिक स्थान के साथ एक समस्या है। यह स्थिति प्राप्त करने में विफल रहता है लेकिन error_callback फ़ंक्शन पर वापस नहीं आता है। लाइव उदाहरण यहां है: http://adamzwakk.com/geolocate/

+4

जब यह "कुछ भी नहीं देता", तो क्या आप निश्चित हैं कि AJAX अनुरोध वास्तव में बाहर जा रहा है? –

+3

ब्राउजर <-> सर्वर संचार की निगरानी के लिए HTTPFox या Firebug जैसे कुछ का उपयोग करें। देखें कि उन विरामों के दौरान क्या हो रहा है। किसी भी तरह की निदान जानकारी के बिना, इसे समझना बहुत असंभव होगा। –

+0

यह ऐसा नहीं लगता है कि PHP पृष्ठ कभी-कभी फ़ायरफ़ॉक्स में यादृच्छिक रूप से लोड हो रहा है।पोस्ट और जीईटी का उपयोग करना कोई फर्क नहीं पड़ता है। – adamzwakk

उत्तर

0

क्या आप सुनिश्चित हैं कि आपका ब्राउज़र आप जो कर रहे हैं उसका समर्थन करता है?

इस प्रयास करें: http://html5demos.com/geo

तुम भी wireshark डाउनलोड करने और आप द्वारा भेजी गई जानकारी की जाँच करें और सर्वर से लौटा सकते हैं।

उसी निर्देशिका में रिक्त PHP पृष्ठ (केवल एक यादृच्छिक स्ट्रिंग गूंजें) डालना भी अच्छा अभ्यास है जहां आप अपना PHP उत्पन्न करना चाहते हैं और देखें कि यह काम कर रहा है या नहीं। विंडोज आधारित सर्वर पर यह एक आम समस्या है कि PHP को विशिष्ट निर्देशिकाओं में काम करने के लिए सेट किया जा सकता है, और गलत स्थापना के कारण दूसरों में विफल हो सकता है। प्रत्येक ब्राउज़र त्रुटियों और चेतावनी संदेशों को अलग-अलग संभालता है, इसलिए यदि यह क्रोम में काम करता है, तो इसका मतलब यह नहीं है कि यह सब कुछ पर काम करता है। क्या आपने सफारी और ओपेरा के साथ प्रयास किया है?

+0

आप वायरशर्क भी डाउनलोड कर सकते हैं और आपके द्वारा भेजी गई जानकारी की जांच कर सकते हैं और सर्वर से लौट सकते हैं। - फायरबग भी यह दिखाता है – Michael

0

मैंने फ़ायरबग खोला और मेरा पता ढूंढने के लिए लिंक पर क्लिक किया। इसने "अपरिभाषित" कहने वाले लिंक का एक भार वापस कर दिया। फायरबग में यह दिखाता है कि आपकी स्क्रिप्ट यह लौट रही है:

<?xml version="1.0" encoding="utf-8" ?> 
    <geoData> 
    <restaurants> 
    </place> 
    </restaurants> 
    <accommodations> 
    </accommodations> 
    <things> 
    </things> 
    </geoData> 

मैंने इसे अच्छे दिखने के लिए इंडेंट किया। ऐसा लगता है कि आपका एप्लिकेशन एक्सएमएल में कुछ भी वापस नहीं कर रहा है। आप एक टैग भी बंद कर रहे हैं जो खुला नहीं है!

0

उपयोग console.log() सावधानी

का उपयोग console.log() अपने जावास्क्रिप्ट कोड के साथ एक अपवाद फेंकता है जब फ़ायरबग विकलांग हो या नहीं स्थापित है। (9 5% समय?)
मैंने थोड़ा रैपर फ़ंक्शन "डंप (var)" dump.js लिखा है जो जांचता है कि फ़ायरबग सक्षम है या नहीं, इसलिए उत्पादन कोड में उपयोग करना भी सुरक्षित है।

पुनश्च: मैंने देखा:

success: function(html2){ 
    $('#locationinfo').html(html2); 
    console.log(html); 
} 

html चर पहले परिभाषित किया गया है या तुम्हारा मतलब html2 किया था।

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