2011-04-11 112 views
1

原諒我提出一個看似明顯的問題,但是我所有的搜索都提供了關於如何使用JS創建POST值的指南,而不是如何抓取(並利用)它們。用javascript抓取POST值

我想要做什麼:

step1.php - 形式POST ING以step2.php

step2.php - 也是一種形式,JS抓住一個特定的崗位價值,並做了一些工作,它,然後相應地更新這個新的表格

由於不值得進入的原因,該過程需要是一個2步/ 2頁的過程。

顯而易見的解決辦法就是做這樣的事情:

<script type="text/javascript"> 

    function damn_ugly() { 

     var shameful = <?php echo $_POST['desiredDatum']; ?>; 
     do more stuff... 
    } 

</script> 

但似乎有點髒了我。

有沒有更好的方法?或者是我真的如此應該做到這一點?

+0

爲什麼你不能做第一個step1.php頁面是動態的,並且對於step2.php做一個ajax post,返回一些javascript函數可以使用的數據?這打破了你'2步/ 2頁的過程',但似乎是一個更好的解決方案,如果你不喜歡上面的格式... – g19fanatic 2011-04-11 13:11:38

+0

說實話,統一這兩種形式的功能爲一個超出了我目前的能力,我是該網站的唯一編碼人員。我只是採取了我的第一個猶豫的步驟,將增量JavaScript增強功能添加到強大的PHP基礎中,並且非常努力地不咬掉更多的東西。 :-) – Drew 2011-04-11 13:14:17

+0

看看jQuery和他們的一些例子......你會發現它比你想象的要容易得多..一次調用,它將你的數據(被打包成一個JS數組)發送到你的PHP表單(你已經知道如何使用),然後它返回一個JS函數,無論你設置哪些數據從php表單輸出。 http://docs.jquery.com/Main_Page – g19fanatic 2011-04-11 13:20:00

回答

4
var postData = <?php echo json_encode($_POST); ?>; 

可以明顯改變通過傳遞一個自定義的數組json_encode包括來自$_POST只有特定的領域。

var desiredDatum = <?php echo json_encode($_POST['desiredDatum']); ?>; 

有沒有更好的方式來做到這一點 - 並使用json_encode不管什麼保證中所含的POST變量什麼也沒有將打破(在分配至少不會)。

+0

抱歉密集,但你可以更新你的答案如何? – Drew 2011-04-11 13:06:47

1

POST值正在發送到服務器。一旦提交,只有服務器可以使用這些值。您的示例幾乎是您必須「訪問」在前一個請求中發送到服務器的POST值的唯一選項。

2

那就是你應該怎麼做,JavaScript不能以另一種方式訪問​​POST值。

Offcourse可以讓它更漂亮一點:讓你的php腳本把POST變量放在一個數組中,然後打印出的數組JSON格式。現在你的JavaScript有數組。

0

JS沒有訪問POST值,它只能檢索GET值。但是,由於您使用的是PHP腳本,並且可以將數據傳遞給JS,爲什麼不以JSON格式提供JS函數數據?您可以使用PHP的json_encode函數將所有POST值編碼爲JSON,然後您可以在JS代碼中輕鬆使用它們。如果你使用jQuery的wirite如下代碼

$(document).ready(function() { 

var shameful = $('#text1').val(); 

}); 

如果不是

<input type='hidden' name='text1' id = 'text1' value='<?php echo $_POST['desiredDatum']; ?>' /> 

現在:

0

試試這個 在第二步第2頁:

設置隱藏文本框頁使用jQuery然後

var shameful = document.getElementById('text1').value; 

我希望這是你在找什麼。