2010-05-02 16 views
8

4 GET parametresini alan bir PHP sayfasına $ .get() çağrısı var. Bazı nedenlerden ötürü, $ .get() öğesinin 4'ünü çağırmasına rağmen, sadece ilk ikisini geçiyor. Chrome'daki dev konsola baktığımda, çağrılan URL'yi gösterir ve yalnızca işlem ve dbname iletir. Ben geliştirici konsolunda bakınJQuery .get() yalnızca ilk iki veri parametresini URL'de geçirerek

$.get('util/util.php', { action: 'start', dbname: db, url: starturl, crawldepth: depth }, function(data) { 
     if (data == 'true') { 
      status = 1; 
      $('#0').append(starturl + "<ul></ul>"); 
      $('#gobutton').hide(); 
      $('#loading').show("slow"); 
      while(status == 1) { 
       setTimeout("update()",10000); 

      } 
     } else { 
      show_error("Form data incomplete!"); 
     } 
    }); 

ve heres URL: İşte kod

http://localhost/pci/util/util.php?action=start&dbname=1hkxorr9ve1kuap2.db

** DÜZENLEME ** ben URL'sini kodlamak için gereken haberdar edildiğini Başlığı geçmeye çalışıyorum. Javascript’te kodlamayı ve php’yi çözmeyi nasıl başarabilirim?

+0

'Starturl' ve 'depth' 'nin tanımlandığından emin misiniz? Ayrıca URL'yi de kodlamalısınız. –

+0

evet tanımlıdırlar. URL'yi nasıl kodlarım? –

cevap

3

starturl ve depth değişkenlerinin tanımlandığından emin misiniz? $ 0get() 'den önceki basit alert() kontrol etmek için yeterli olacaktır.

Düzenlemeyle ilgili olarak, dizeleri JavaScript'te encodeURIComponent işleviyle kodlayabilirsiniz. Ve PHP'de urldecode ile tekrar çözelim. Her ikisi de bir dizi argüman alırlar.

0

Muhtemelen, giriş dizelerinizin uygun şekilde alıntılanıp satılmadığını kontrol etmeniz gerekecektir. Dahili jQuery, param() yöntemini kullanarak belirttiğiniz parametre haritasından paramter dizesini oluşturacaktır. Bu yöntem, anahtarlarınızı ve değerlerinizi yanlış girdiğinizde büyük olasılıkla ayrıştırılamayan anahtar ve değerlerin bir nesnesini oluşturacaktır.

@ Felix Kling: jQuery, encodeURIComponent ile parametre dizesinin anahtarlarını ve değerlerini otomatik olarak kodlar.