[英]Passing JavaScript variables to PHP as a hidden input
我正在使用CodeIgniter,並且在一個包含JavaScript的單個PHP文件中,我想將一個JavaScript變量傳遞給主體(PHP)並使其成為隱藏的輸入。 但是,每當我使用控制器發布值(JavaScript變量所在的位置)時,它都不會返回任何值。 以下是部分代碼:
JS:
function pass() {
//some code
document.getElementById('yes').innerHTML = yes; //where yes is a var
}
HTML(PHP):
<form action="search">
<input type="hidden" name="yes" value="<?php $yes= "<p id='yes'> </p>"; echo $yes;?>" />
<input type="submit" name="yes" value="Done" />
</form>
因此,每當我在控制器中發布yes
,即$yes = $this->input->post('yes');
它什么也不返回。
如何傳遞JavaScript變量,以便可以在下一個文件中再次使用它? 謝謝!
您的submit
按鈕,您的hidden
字段具有相同的name
是 。
您嘗試通過id
yes訪問您的hidden
輸入,並且您的輸入沒有此ID,請改用getElementByName('yes')
或為您的隱藏字段提供id='yes'
。
innerHtml
僅設置或返回元素的內部HTML,它應該是value
。 HTML代碼:
<form action="search">
<input id='yes' type="hidden" name="yes" value="<?php $yes= "<p id='yes'> </p>"; echo $yes;?>" />
<input type="submit" name="yess" value="Done" />
</form>
JS:
document.getElementById('yes').value = yes;//yes is a variable
您必須設置<input>
的value
屬性,而不是innerHTML
。 您還需要給<input>
一個不同於其他字段的名稱或“提交”按鈕。 最后,必須為您的<input>
一個“ id”屬性,以便實際上可以使用getElementById()
獲得它。
您應該設置隱藏輸入的value
,而不是innerHTML
。 此代碼應工作:
function pass() {
//some code
document.getElementById('yes').value = yes; //where yes is a var
}
正如Pointy指出的,另一個問題是隱藏的輸入實際上沒有id,因此您應該為其指定一個id(在這種情況下,id應該為yes
)。
您還應該執行的操作是使用PHP將要插入的html逸出到隱藏的輸入中,以免意外解析。 您可以使用htmlspecialchars()
做到這一點:
<form action="search">
<input type="hidden" id="yes" name="yes" value="<?php $yes= htmlspecialchars("<p id='yes'> </p>"); echo $yes;?>" />
<input type="submit" value="Done" />
</form>
您沒有設置form方法,因此默認為GET
你應該設置
<form action="search" method="POST">
嘗試
JS:
var yes = "<?php echo $_POST['yes']; ?>";
document.getElementById('yes').innerHTML = yes;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.