次のコードは機能しません。 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ählen Sie eine Gruppe aus">
<option></option>
'.$options['cats'].'
</select>
</div>
<br>
<input type="hidden" name="fstep" value="1">
<input type="submit" id="formsubmt" value="weiter" class="button" />';
die(doform($form));
}
?>
私はprint_r($_POST)
を使用する場合$_POST
配列が空のようです。このような
あなたは、ブラウザのコンソールでのAJAXリクエスト/レスポンスを見たことがありますか? –
はい何も見えません。エラーなしパラメータなし - GET = chckのみ – 4usolutions
フォームはいつものように送信されないようにしてください:$( '#formstep')submit(function(e){e.preventDefault(); //ここでajax呼び出しを行います。}また、ページがロードされた後に即座に要求を出していますが、自然にフォームにはデータがありません。 – Eihwaz