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