2016-04-05 21 views
0

Aşağıdaki kod çalışmıyor. PHP dosyası POST değişkenlerini hiç almadı ve nedenini bilmiyorum. Belki birisi bana yanlış yaptığımı söyleyebilir.jQuery ile gönderilen formum POST değişkenleri göndermiyor

HTML

<div id="preloader" class="preload"></div> 
<div id="formarea"></div> 

JavaScript: Ben print_r($_POST) kullandığınızda

$(document).ready(function() { 


/*Formulargenerator*/ 
//$.fn.reload = function() { 
//alert("reload data:"+$('#formstep').serialize()); 
$.ajax({ 
     type: 'POST', 
     url: 'system/ajx/form_generator.php?chck=1', 
     data: $('#formstep').serialize(), 
     success: function(result){ 
     $('#formarea').html(result); 
     alert("Sucess"); 

     // $('#beschreibung').each(function() { 
     // $(this).data('default', this.value); 
     // }).focusin(function() { 
     // if (this.value == $(this).data('default')) { 
     // this.value = '';  
     // } 
     // }).focusout(function() { 
     // if (this.value == '') { 
     // this.value = $(this).data('default');  
     // } 
     // }); 

     //$('#produktgruppe').change(function(){ 
     // $('#formstep').reload(); 
     // }); 

     // $('#formstep').submit(function(){ 
     // $('#formstep').reload(); 
     // }); 

     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(thrownError); 
     alert('resultdaten:'+result); 
     } 
    }); 
//} 


//$('#formstep').reload(); 


$('#produktgruppe').change(function(){ 
    $('#preloader').show(); 
    $('#formstep').reload(); 
    $('#preloader').hide(); 
}); 

$('#formstep').submit(function(){ 
alert('Click Submit'); 
    $('#preloader').show(); 
    $('#formstep').reload(); 
    $('#preloader').hide(); 
}); 

$('#preloader').hide(); 
/* Ende Formulargenerator */ 


}); 

PHP Bölüm

<?php 
unset($vres); 
echo"GET: $_GET"; 
print_r($_GET); 
echo"POst: $_POST"; 
print_r($_POST); 

function doform($content) 
{ 
    $form='<form id="formstep" method="post" action="#">'.$content.'</form>'; 
    return $form; 
} 


if($_GET['chck']==1) 
{ 
    if($_POST['fstep']==1) 
    { 
    if($_POST['produktgruppe']<=0){ $vres['produktgruppe']='error'; } 
    } 
    $outstep=1; 
} 
else 
{ $outstep=1; } 


if($outstep<=1) 
{ 
    $form='<div class="form-group"> 
       <label class="control-label">Ich suche</label> 
       <select name="produktgruppe" class="sselect '.$vres['produktgruppe'].'" id="produktgruppe" 
        data-validation="required" 
        data-validation-error-msg="Bitte w&auml;hlen Sie eine Gruppe aus"> 
       <option></option> 
       '.$options['cats'].' 
       </select> 
      </div> 
      &nbsp;<br> 
      <input type="hidden" name="fstep" value="1"> 
      <input type="submit" id="formsubmt" value="weiter" class="button" />'; 
    die(doform($form));   
} 
?> 

$_POST dizisi boş gibi görünüyor. Böyle

+0

tarayıcının konsolunda AJAX istek/tepkisini izledi mi? –

+0

evet görecek bir şey yok. Hata yok parametre yok - yalnızca GET = chck – 4usolutions

+0

Formun normal şekilde gönderilmesini engellemeniz gerekir: $ ('# formstep'). Submit (işlev (e) {e.preventDefault(); // Ajax çağrınızı buradan yapın .} Ayrıca, sayfa yüklendikten sonra hemen bir istekte bulunuyorsunuz, doğal olarak, form o zamana kadar herhangi bir veriye sahip olmayacak ... – Eihwaz

cevap

0

şey çalışmalıdır:

var formularGenerator = { 
     init: function() { 
       this.getForm(); 

       $(document).on('change', '#produktgruppe', function(){ 
        formularGenerator.submitForm(); 
       }); 

       $(document).on('submit', '#formstep', function(e){ 
        e.preventDefault(); 

        formularGenerator.submitForm(); 
       }); 
     }, 

     submitForm: function() { 
       $('#preloader').show(); 

       $.ajax({ 
        type: 'POST', 
        url: 'system/ajx/form_generator.php?chck=1', 
        dataType: 'html', 
        data: $('#formstep').serialize(), 
        success: function(result){ 
          $('#formarea').html(result); 
          alert("Sucess"); 
        }, 
        error: function (xhr, ajaxOptions, thrownError) { 
          alert(xhr.status); 
          alert(thrownError); 
          alert('resultdaten:'+result); 
        }, 
        complete: function(data) { 
          $('#preloader').hide(); 
        } 
       }); 
     }, 

     getForm: function() 
     { 
       $('#preloader').show(); 

       $.ajax({ 
        type: 'POST', 
        url: 'system/ajx/form_generator.php?chck=1', 
        dataType: 'html', 
        success: function(result){ 
          $('#formarea').html(result); 
          alert("Sucess"); 
        }, 
        error: function (xhr, ajaxOptions, thrownError) { 
          alert(xhr.status); 
          alert(thrownError); 
          alert('resultdaten:'+result); 
        }, 
        complete: function(data) { 
          $('#preloader').hide(); 
        } 
       }); 
     } 
    } 

    $(function(){ 
     formularGenerator.init(); 
    }); 
+0

Eğer hiçbir şey denemediysem, bu işe yaramayacak çağrılacak gibi görünüyor !? (ingilizce :-) için üzgünüm – 4usolutions

+0

Soruyu anlamadım, bu kodu denediğinizde ne olacağını soruyor musun Dat göndermeli #produktgruppe değiştiğinde veya #formstep formu gönderildiğinde sistemden/ajx/form_generator.php? chck = 1'e eşzamansız olarak bir form. Script en altta - formularGenerator.init(); – Eihwaz

+0

hayır kodunuzu deneyin ama hiçbir şey olmayacak. eylem yok. Biçim oluşmayacak, başlamaz. Belki de kodunuza daha fazla bir şey eklemek zorundayım !? $ (Document) .ready (function() {..your code} içinde olmalıdır. – 4usolutions

İlgili konular