document.getElemebtById.value作为php值的赋值

document.getElemebtById.value作为php值的赋值,php,getelementbyid,Php,Getelementbyid,在document.ready函数中。。。我想给页面中的元素分配一个从php获得的值 这是我的文件是php。它首先获取一个POST值,并将其存储在变量中 <?php $myvar = $_POST['externalvar']; ... ?> 现在HTML开始了。。。在HEAD部分中,我包括jquery文件。在HEAD标签中,我启动了一个script标签,在这里我为document.ready(在showpage上启动)放置了一个函数。在这个函数中,我想访问HTML中的一个元素

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

这是我的文件是php。它首先获取一个POST值,并将其存储在变量中

<?php
$myvar = $_POST['externalvar'];
...
?>

现在HTML开始了。。。在HEAD部分中,我包括jquery文件。在HEAD标签中,我启动了一个script标签,在这里我为document.ready(在showpage上启动)放置了一个函数。在这个函数中,我想访问HTML中的一个元素(一个输入),在这个元素中,我想将获得的$myvar值放在文件的顶部。。。 所以我用这句话:

document.getElementById('idvisit').value = <?php echo $myvar; ?>;
document.getElementById('idvisit')。值=;
但当遇到这一行时。。。它下面的内容在函数中不再有效。所以我认为这是错误的。 到底怎么了? 我在html中的输入声明为:

<input type="hidden" name="idvisit" id="idvisit" value="<?php echo $myvar; ?>">
document.getElementById('idvisit')。value=;
应该是

document.getElementById('idvisit').value = <?php echo json_encode($myvar); ?>;
document.getElementById('idvisit')。值=;
问题是$myvar的内容没有作为字符串呈现给javascript,而是试图将内容解释为javascript。addslashes调用应该转义输入中的任何特殊字符

试试这个

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

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

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

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

或者更好的
document.getElementById('idvisit')。value=它不工作。与以前一样,只有在使用F5刷新页面或刷新。。。这真的很烦人,我在问题中添加了代码。请自己试一试。(请注意,我使用的是jquery mobile.js脚本的本地版本。它是一个经过修改的版本,可以帮助我在滚动时保持页眉和页脚不闪烁。)无论如何,这不是问题所在。我用标准CDN试过了,但问题仍然是一样的,这也不起作用。甚至更多。在我的iphone上测试时,它成功地冻结了我的手机。我的意思是,我不能停止应用程序,也不能最小化它。我不得不硬重设电话。尴尬…如果我用引号括起来。。。那么我现在不会从php中获取变量了,是吗?我不想传递给那个输入,文本,但上面获得的$myvar的值。。。在php中。
<div data-role="page" id="visitarea">