ajax js serialize form elemanları okumuyorsun

3 Cevap php

Serialize () fonksiyonu tarafından okunan bir form var.


 <script type="text/javascript">
 function submitTrans1(){
  var formData = $('form1').serialize();
  var options = {
   method:'post',
   postBody:'formData',
   onCreate: function(){alert(formData)},
      onSuccess: function(transport){alert("onSuccess alert \n" + transport.responseText);},
   onComplete: function(){alert('complete');},
   onFailure: function(){alert('Something went wrong...')}
   }

  new Ajax.Request('/clients/addTrans/<?=$clientID123?>/',options);
 }
 </script>
  <?php
  $datestring = "%Y-%m-%d";
  $time = time();
  $clid1 = $this->uri->segment(3);
  ?>
  <form name="form1" id="form1">
   <div id="addTransDiv" style="display:none">

     <div class="">
      <label for="transDesc" id="transDesc" value="sadf" class="preField">Description</label>
      <textarea cols="40" rows="3" id="transDesc" value="" name="transDesc" class=""></textarea>
     </div>
     <div class="">
      <label for="date" class="preField">Date</label>
      <input type="date" id="transDate" name="date" value="<?=mdate($datestring, $time);?>" size="40" class=""/><br/>
     </div>
     <div class="">
      <label for="userfile" class="preField">File</label>
      <input type="file" name="transFile" id="userfile" size="20" /><br>
     </div>
     <input type="button" id="submitTrans" name="submitTrans" value="Submit" onclick="submitTrans1()">

   </div>
  </form>

Ah, ben ideal tefrika halinde atanan değişkeni uyaracak Ajax.Request bir onSuccess parametresinde bir uyarı var. Bu uyarıları Ancak, hiçbir şey uyarır. Ben de işleme url ihtimale $ _POST verileri yazdırırken var, ama aynı zamanda öylesine indeedidly şey form yayınlanmıştır ediliyor responseText boş bir dizi döndürür.

Thx.

Edit1

Bu sorunun formu div içinde olduğu gerçeği ile ilgili olabilir gibi görünüyor. Ben form ve js dışında Sayfadaki her şeyi kaldırırsanız, ok çalışır. Ama formu, varsayılan olarak gizli ve görüntülenecek başka bir işlevini kullanan bir div olduğunu. Bir div ise, tefrika aracılığıyla form verilerini almak için gerekli büyü çeşit var mı?


Düzenle 2

Tırnak ve kare işaretleri ve diğer tüm caz ekleyerek denedim. Ben vb web geliştirici araç çubuğu, kundakçı, kullanıyorum .. herhangi bir js hataları atma değildir ve hiçbir şeyden korkmuyorum gelmez.

3 Cevap

Hatalı masa kırma yapar.

Ben tr Sitesinden veya td ait (emin değilim son bölüm hususlar varsa) ve tablo etiketleri kaldırarak üzerine, her şey çalışıyor ile bir tablo içinde formu vardı.

İlgili js şimdi gibi görünüyor:

var formData = $('form1').serialize();
var options = {
   method:'post',
   postBody:formData,
 [...]

Ben Akademiye teşekkür etmek istiyorum ve bana yardımcı tüm o olur.

PostBody alanında değişken adı formData yerinden tırnak kaldırmayı deneyin.

Firefox Web Developer Toolbar istemci tarafı javascript hata ayıklama için bir şey olarak yararlıdır.

BTW, pasajı JS işlevi showTransAdd gibi birkaç tanımsız öğe, (), birkaç PHP değişkenleri, PHP işlevi mdate (), ve prototip kütüphane dahil içerir.

Bu satırı değiştirin:

var formData = $('form1').serialize();

Bunun için:

var formData = $('#form1').serialize();

Ben çalışan bir kopyasını yapmak için birkaç başka şeyler değiştirmek zorunda kaldı, ama tüm tevkif kodu veya nasıl ortam farklı olabilir ne hakkında emin değilim. Bu işe yaramazsa, ben sana kullanılan tam kod parçacığını gönderebilirsiniz.