0

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

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

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

现在 HTML 开始了……在 HEAD 部分中,我包含了 jquery 文件。在 HEAD TAG 中,我启动了一个脚本 TAG,在其中放置了 document.ready 的函数(在显示页面上触发)。在这个函数中,我想访问 HTML 中的一个元素(一个输入),我想将获得的 $myvar 值放在文件的顶部......所以我使用这一行:

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

但是当遇到这条线时......它下面的任何东西在函数中都不再起作用了。所以我认为这是错误的。究竟有什么问题?我在 html 中的输入声明为:

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

通过像上面那样直接执行,输入接收来自 PHP 的值,但是如果我依赖 jquery 函数......输入保持为空,并且没有执行低于该分配的脚本。

我应该怎么做才能使作业在脚本中起作用?

4

3 回答 3

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

应该是

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

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

于 2013-07-02T03:11:24.190 回答
0

试试这个

document.getElementById('idvisit').value = ' <?php echo $myvar; ?> ';
于 2013-07-02T03:39:58.293 回答
0

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

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

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

于 2013-07-02T09:09:32.003 回答