2010-11-25 22 views
5

ki .. sonra gizli girdilerin bir grup ile seri ve PHP dosyasına gönderilen olduğunu bir şekilde bu hat ?:jQuery serialize ve encodeURIComponent bir form girişi kodlamak URI gerek

içine encodeURIComponent birleştirmek mümkündür
var landingCreate = $(this).serialize(); 

GÜNCELLEME:

var landingCreate = $(this).serialize()+"&enc="+encodeURIComponent($('input[name=\'longform\']').val()); 

ve url girerek:

örneğin Bunu yapmak

http://www.smashingmagazine.com/2008/10/13/pricing-tables-showcase-examples-and-best-practices/ 

metin kutusuna, URL'yi değiştirmeden değiştirir .. tüm tire ve eğik çizgi vb. Hex kodlarına dönüştürülmemelidir?

GÜNCELLEME İşte

tam koddur.

<form id="createTokenLanding"> 
    <input type="text" name="longform" /> 
    <input type="hidden" name="domain" value="<?php echo rawurlencode($_SERVER['HTTP_HOST']); ?>" /> 
    <input type="hidden" name="useragent" value="<?php echo rawurlencode($_SERVER['HTTP_USER_AGENT']); ?>" /> 
    <input type="hidden" name="ip" value="<?php echo rawurlencode($_SERVER['REMOTE_ADDR']); ?>" /> 
    <input type="hidden" name="cookieuser" value="<?php echo rawurlencode($_COOKIE['littlr_user']); ?>" /> 
    <input type="submit" name="submit" value="Shorten" /> 
</form> 

<div id="result"> 
123 
</div> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.ajaxSetup ({ cache: false }); 
     $('#createTokenLanding').submit(function() { 
      var landingCreate = $('#createTokenLanding').serialize(); 
      $.ajax({ 
       url: 'action-create.php', 
       data: landingCreate, 
       success: function(responseText){ 
         $('#result').html(responseText); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 
+0

Geçiş URI kodlamanızı istediğiniz giriş kullanıcı tarafından giriliyor mu yoksa gizli giriş mi? –

+0

Kullanıcı tarafından girilmiştir. – Gary

+0

"longform", "bu" biçimindedir? Ajax için veri göndermek için event submit'i kullanıyorsunuz? –

cevap

1

urlencode function'u deneyebilir ve hex kodları için .replace() yöntemini kullanabilirsiniz. JQuery.ajax kullanırsanız, "geleneksel" seçeneğinin belgelerini görebilirsiniz.

+1

Giriş metnini neden forma ekleyip serialize()? Neyse, karşılığında ne bekliyorsunuz? –

+1

İstediğim şudur: http://www.smashingmagazine.com/2008/10/13/pricing-tables-showcase-examples-and-best-practices/ http:% 3A% 2F% 2Fwww.smashingmagazine.com% 2F2008% 2F10% 2F13% 2Fpricing-tables-showcase-samples-and-best-applications% 2F – Gary

+1

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel parçalarını buraya eklemek ve bağlantıyı sağlamak daha iyidir referans için. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. – RMcLeod

4

Ayrıca jQuery 1.4 kullanırsanız "jQuery.param" içinde "geleneksel" vardır. ne yapmak anahtar ve değer için fonksiyon "encodeURIComponent" kullanmaktır:

param = encodeURIComponent (key) + "=" + encodeURIComponent (value); 

find traditional setting
jQuery.param

GÜNCELLEME

bu örnekte de görebileceğiniz

, eserlerini "serialize" posta ile gönderilecek alanlar üzerinde olsun ya da olsun. Veri gönderdiğiniz ajax kodunu koyabilir misiniz? example

+0

Anlamadığım şey neden .serialize() ve encodeURIComponent ile başlayan tüm karakterlerden kaçmıyor .. – Gary

+0

Yukarıdaki kodun tamamını gönderdim. – Gary