0

I have one line of JavaScript that I'd appreciate help with.

req.open("GET", 'update.php?id=<?php $id ?>', true);

Where $id = 12345, I am trying to get the contents of update.php?id=12345.

Using PHP inside this JavaScript doesn't seem to be working for me.

Any suggestions?

4

3 回答 3

4

首先,确保您实际上位于 PHP 文件中,或者将您的服务器配置为处理您在 PHP 中使用的任何文件扩展名。

然后,您可以将数据直接回显到 JavaScript 中。为了获得最佳兼容性并避免潜在的 XSS 漏洞,请始终对数据进行 JSON 编码。

req.open('GET', 'update.php?id=' + <?php echo json_encode($id); ?>, true);

就个人而言,我更喜欢从 PHP 分配的变量块。这让你的 JavaScript 更干净。

<?php
    $options = new stdClass();
    $options->id = 12345;
    $options->dinnerSelection = 'pizza';

    echo 'var options = ', json_encode($options), ';'
?>

// Then later on in your JS...
req.open('GET', 'update.php?id=' + options.id, true);
于 2013-05-18T22:14:01.377 回答
2

你有办法做到这一点。第一个在 .php 文件中创建您的 javascript 文件(注意您需要包含它,而不是在文件开头链接它。

第二个,在php中,你可以写

<?php
echo '
<script type="text/javascript">
   id="'.$id.'";
</script>';
?>

有了这个,你在 javascript 中定义了一个具有良好价值的全局变量。然后你只需要在这之后写:

req.open("GET", 'update.php?id='+id, true);

如果您必须在请求页面后更改 id,您只需更改 id javascript 值

于 2013-05-18T22:20:39.973 回答
1

我相信使用 PHP 以这种方式格式化您的 javascript 将是一个非常糟糕的设计决定。您应该提供有关您正在尝试做的事情的更多信息,因为我几乎可以向您保证,有更好的方法可以做到这一点。例如,如果您尝试对 URL 进行 javascript 调用(显然),则将该数据应用于 HTML 文档中的属性:

<div id="someExample">
   <a href="http://www.whocares.com" data-id="12345">Item 12345</a>
</div>

然后在单击时使用不显眼的 javascript访问该项目,必要时取消链接的默认操作。这种方法的好处很多——您可以编写可重用的代码,并且您不需要在以后很难理解的 javascript 中进行额外的 PHP 解析。

通过 PHP 将 JS 硬编码数据添加到 javascript 对象是一个非常糟糕的设计决策。如果您需要更多帮助,请告诉我,但请先尝试进行更多研究!

于 2013-05-18T22:55:08.010 回答