2011-02-07 61 views
2

來自我的代碼POST值不會顯示在javascripts中

<script type="text/javascript"> 
function getValue() 
{ 
    console.log("<?php echo $_POST['input_value'] ; ?>") ; 
    return false ; 
} 
</script> 

<form id="request_form" action="" name="request_form" method="POST" > 
    <input id="input_value" type="text" size="45" name="input_value"></br> 
    <button class="button" id="btForm" onclick="return getValue()" >submit</button> 
</form> 

我希望它會打印一些我放的值,但它沒有顯示任何內容。 我錯了什麼?

+2

PHP在服務器上執行,客戶端上的javascript ... – knittl

回答

3

PHP是服務器端,並且是在頁面加載到瀏覽器之前完成的。當第一次加載時,當時沒有$_POST,所以日誌是空的。

提交表單時,您調用console.log函數,其中沒有文本,然後返回FALSE,因此表單實際上不會被提交。

您需要將表單標記中的action屬性設置爲指向PHP頁面以處理$_POST數據,或者您需要使用AJAX發佈表單。

0

你不能從javascript寫出實際的服務器端代碼,並期望它執行客戶端。

0
 
function getValue() { 
    console.log(document.request_form.input_value.value) ; 
    return false ; 
} 

可能有一種感覺,在你磨片在JS(客戶端)執行的getValue()的時刻 - PHP(服務器端)不涉及所以沒辦法回聲$ _ POST ....

4

您的表單實際上並未提交到php頁面。它只是調用getValue,它現在還沒有任何東西。

你試圖做的事情有兩個半,你的錯誤是你把它們混合在一起。首先是服務器端,使用PHP。當您提交表單,你應該使用:

<input type=submit value="Submit" /> 

這將刷新頁面(因爲表單動作爲空),其中,使用PHP,可以讀您的文章的價值和打印背出與其他地方一樣這一頁。一旦頁面加載完成,PHP不再參與並且不會影響行爲。

當你擁有了它,現在,當你加載你的頁面,它看起來像這樣:

<script type="text/javascript"> 
function getValue() 
{ 
    console.log("") ; 
    return false ; 
} 
</script> 

由於崗位價值是不存在的第一次加載頁面,發送到瀏覽器的JavaScript看起來像那樣 - 沒有價值可打印。點擊按鈕將執行getValue(),如同它出現在這裏。

+0

@火箭感謝編輯,我以爲有些東西看起來很奇怪...... – Tesserex

+0

沒有問題。 StackOverflow會去除HTML標籤,因此請確保將它們放入代碼塊中。 –

+0

@火箭是的我知道,只是我的錯字。 – Tesserex