来自php值的document.getElementById.value赋值

时间:2013-07-02 03:06:24

标签: php getelementbyid

在document.ready函数中...我想从页面中为一个元素分配一个从php获得的值。

那是我的文件是php。它首先获取我存储在变量

中的POST值
<?php
$myvar = $_POST['externalvar'];
...
?>

现在HTML开始......在HEAD部分我包含了jquery文件。在HEAD TAG中,我开始一个脚本TAG,我在其中放置了document.ready的一个函数(在showpage上触发)。在这个函数里面我想访问HTML(一个输入)中的一个元素,我想把$ myvar值放在文件的最上面... 所以我使用这一行:

document.getElementById('idvisit').value = <?php echo $myvar; ?>;

但是当遇到这一行时...它下面的任何内容都不再适用于该函数。所以我认为这是错误的。 究竟有什么问题? 我在html中的输入声明为:

<input type="hidden" name="idvisit" id="idvisit" value="<?php echo $myvar; ?>">

通过直接如上所述,输入从PHP接收值,但是如果我依赖于jquery函数...输入仍为空,并且正在执行该分配下面的脚本。

如何使作业在作业中发挥作用?

3 个答案:

答案 0 :(得分:2)

document.getElementById('idvisit').value = <?php echo $myvar; ?>;

应该是

document.getElementById('idvisit').value = <?php echo json_encode($myvar); ?>;

问题是$ myvar的内容没有作为字符串呈现给javascript,而是试图将内容解释为javascript。 addslashes调用应该转义输入中的任何特殊字符。

答案 1 :(得分:0)

试试这个

document.getElementById('idvisit').value = ' <?php echo $myvar; ?> ';

答案 2 :(得分:0)

在挖掘网页后,我想我找到了解决方案: 显然,当从另一个页面调用时,使用jquery ...只在第一页中找到的代码,位于:

<div data-role="page" id="visitarea">

得到解释。所以TAG上面没有脚本。 所以我在我的文件的页面TAG中移动了document.ready函数的脚本,现在它在文档准备就绪时被解释并触发了......有趣。我相信你们中的一些人会觉得这很有用。 奇怪的是,如果我不使用js函数内的php标签...一切顺利。这仍然是一个谜。