2012-03-03 10 views
0

でそのページを表示私が持っている: form.php preview.phpポストフォームデータとポストされたデータ

form.phpは、多くの動的に作成されたフォームオブジェクトとその中のフォームを持っています。 jquery.validationプラグインを使用して、送信前にフォームを検証します。 ハンドラを提出:

submitHandler: function() { 
      var formData = $("#myForm").serialize(); 
      $.post("preview.php", {data: formData },function() { 
    window.location.href = 'preview.php'; 
}); 

質問: - どのようpreview.phpとデータを表示するために、現在のページを変更するには?私のsubmitHandlerはうまくいきませんか?任意のヒント?

preview.php:

$results = $_POST['data']; 
     $perfs = explode("&", $results); 
     foreach($perfs as $perf) { 
      $perf_key_values = explode("=", $perf); 
      $key = urldecode($perf_key_values[0]); 
      $values = urldecode($perf_key_values[1]); 
     } 
     echo $key, $values; 
    enter code here 
+0

可能な場合は、あなたのアプリと、してみてください送信されたページビューのページを返すデータを作成し、スクリプトを次のように変更します。$ .post( "preview.php"、{data:formData}、function(data){ $( "#divPreview")。attr( "innerHTML"、data); }); –

答えて

0

<form name="Iran" method="POST" action="preview.php" onsubmit="return alex90()"> 
</form> 

そして、このスクリプトを使用しています。セッションなし。

フォームに追加:

<form action="preview.php" onsubmit="return submitForPreview()"> 
<input type="hidden" name="serial" id="serial" value="test"> 

JS:

function submitForPreview() 
{ 
    if($("#form").valid()){ 
     $('#serial').val($("#newAdForm").serialize()); 
     return true; 
    }else{ 
     return false; 
    } 

} 

preview.phpヘルプフォーク用

echo $_POST['serial']; 
//Which shows the serialized string. YEEEEYYY :D 

ありがとう:D

0

ただ、AJAXせずにフォームを送信して、フォームのactionは "preview.php"

EDITであることを確認してください:検証プラグインでこれを行うためには、単にsubmitHandlerオプションを削除あなたは上に示します。これは、通常のブラウザフォーム送信に乗りたい場合に使用されます。これは、今はやりたくないものです。あなたのAjaxの提出と

、そのページに移動しようとしている....それは2ページ要求で、フォームが自動的にリダイレクトなしではJavaScriptを使用して、ページのロードで利用可能なデータは、あなたが簡単にでき

+0

フォームを検証してシリアル化するには、ajaxが必要です。 –

+0

次に、すべてのデータをセッションに保存する必要があります – charlietfl

+0

応答は – charlietfl

0

をリダイレクトしていないがありますフォームのonsubmitを追加し、関数に沿って検証チェックを使用します。最後に何かがうまくいくならば、それ以外の場合は真の状態で返し、そうでない場合は偽を提出しないようにします。

例えば

:私は私の問題を解決するために管理

<script language="javascript"> 
function alex90() 
{ 
// use whatever validation you want 
if(form == valid){ 
return true; 
}else{ 
alert("Something's wrong folk!"); 
return false; 
} 
} 
</script> 
+0

のjquery.validatorプラグインには、選択されたフォームが有効な場合はboolを返すvalid()というメソッドがあります。 。問題は私が$( "#aForm")を送ることができないことです。 preview.phpに。関数alex90() { \t if($( "#aForm")。valid()){ \t \t var formData = $( "#newAdForm")。 \t \t // formDataを送信しますか? \t \t return true; \t} else { \t \tアラート(「何か間違ったフォーク!」); \t \t falseを返します。 \t} } –

関連する問題