2016-10-19 24 views
0
我有用戶填寫第A形式

,我然後重定向到網頁B與它發送$ _ POST數據。我已經看到,我可以從這樣的表單中序列化發佈數據$("form").serialize()this.serialize(),但我不想從我需要從$ _POST獲取的表單中檢索數據。我怎樣才能從當前頁面上存在的表單序列化$ _POST數據?

+2

請編輯此問題,並要求更清楚,這是令人困惑 –

+0

你爲什麼這樣做?也許你可以通過AJAX發送信息,在收到響應後,使用這些信息創建另一個信息?但我仍然不明白它的用法。 –

+0

你如何發佈數據?阿賈克斯?否則,我不知道如何使用JS將序列化數據和「重定向」(我假設你發佈)到另一個頁面使用POST方法?告訴我們你的代碼。 –

回答

0

我發現一個解決方案,以防萬一有人想知道如何做到這一點。 var post_info = [];創建一個數組來保存所有的$ _POST變量。 這是採取所有後變量,並把它們放入一個json數組爲ajax post_info = <?php echo json_encode($_POST); ?>;。阿賈克斯看起來很正常。

  "ajax": { 
       "url": "ajax/test.php", 
       "type": "POST", 
       "data": {post_info: post_info} 
      }, 

在PHP端我沒必要json_decode因爲AJAX將以此爲$ _ POST變量。除了它現在是一個多維數組,因此訪問變量看起來像這樣$_POST['post']['item']。你去了。我從未回答過我自己的問題。

0

當有人提交表單,除非您使用JavaScript來覆蓋默認瀏覽器的行爲,他們將採取頁B.你定義「法」與形式的「行動」得到你想要的行爲。因此,要使用method =「POST」發佈數據並轉至pageb.php,您將設置action =「/ pageb.php」。然後在pageb.php中,您可以從pagea上的表單訪問POST變量。例如。

網頁A:

<form name="aform" action="/pageb.php" method="POST"> 
    <input type="text" name="name" /> 
    <input type="submit" value="Submit" /> 
</form> 

中輸入您的姓名,點擊提交,重定向到pageb.php。然後在頁面上:

<?php 
    $name = $_POST["name"]; 
    echo $name; 
?> 

您看到名稱。雖然不是很令人興奮。

你可以選擇使用Ajax和jQuery的序列化功能來發送表單數據,不留網頁A對pageb.php。

你可以做這樣的事情:

<form id="aform" action="/pageb.php" method="POST" onsubmit="return submitForm(event)"> 
    <input type="text" name="name" /> 
    <input type="submit" value="Submit" /> 
</form> 

<script type="text/javascript"> 

    function submitForm() { 
     event.preventDefault(); 
     $.post('/pageb.php', $("#aform").serialize(), function(response) { 
      // Do something with the response 
     }); 
    }; 

</script> 

這是非常基本的,但是它停止的形式表現正常,序列化的形式,並將其發送到網頁B。 pageb.php將不得不輸出某種類型的文本,純文本或JSON可能取決於你想實現什麼。

+0

上這是我在做什麼。當我打到pageb.php時,我正在做一個ajax調用來查詢數據庫並填充數據表。在pageb.php表單不見了,但我有$ _POST數據。整個情況的問題是數據表。我無法加載頁面而沒有填充數據表或數據表將永遠說「加載」,而不是在頁面上渲染任何東西。 – moe

+0

我認爲你已經添加了一個額外的步驟。用PHP啓動pageb以執行數據庫查詢,然後重定向到另一個頁面或將pageb呈現爲HTML。在您更改頁面後,無需發送Ajax調用 – Taintedmedialtd