2016-04-05 10 views
0

次のコードは機能しません。 PHPファイルはPOST変数を受け取らなかったので、なぜか分かりません。たぶん誰かが私が間違っていることを教えてくれるかもしれません。jQueryで投稿されたフォームがPOST変数を送信しない

HTML

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

Javascriptを:

$(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パート

<?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));   
} 
?> 

私はprint_r($_POST)を使用する場合$_POST配列が空のようです。このような

+0

あなたは、ブラウザのコンソールでのAJAXリクエスト/レスポンスを見たことがありますか? –

+0

はい何も見えません。エラーなしパラメータなし - GET = chckのみ – 4usolutions

+0

フォームはいつものように送信されないようにしてください:$( '#formstep')submit(function(e){e.preventDefault(); //ここでajax呼び出しを行います。}また、ページがロードされた後に即座に要求を出していますが、自然にフォームにはデータがありません。 – Eihwaz

答えて

0

何か作業をする必要があります:

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

私はそれを試しても何も起こらないでしょうか?それは機能が起動するために呼び出されないようですね!(私の英語のために申し訳ありません:-) – 4usolutions

+0

私は質問を理解していませんでした。それはdatを送るべきですaフォームから非同期的にシステム/ ajx/form_generator.php?chck = 1に変更します。#produktgruppeが変更された場合や#formstepフォームが送信された場合。スクリプトは一番下に初期化されます - formularGenerator.init(); – Eihwaz

+0

いいえ、私はあなたのコードを試しても何も起こりません。行動はありません。フォームは生成されません、それは起動しません。たぶん私はあなたのコードに何かを追加する必要があります! – 4usolutions

関連する問題