簡體   English   中英

將JavaScript變量作為隱藏輸入傳遞給PHP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM