-4

我正在尝试利用 javascript 变量作为 PHP 数组的键来echo输出。id请注意,我想将 javascript 变量用作 PHP 数组的键$allNames[]

这可能吗?没有 JSON/AJAX?如果是这样,请帮忙。

<script type="text/javascript" language="javascript">

    $('*[class^="spec"]').mouseover(function(){
        var the_class = $(this).attr("class");
        var id = the_class.replace("spec", "");
        $('#here').html('<?php echo $allNames[id]; ?>'); // here
    });
</script>

非常感谢。

4

3 回答 3

3

您可以使用 AJAX,但在这种情况下这样做可能会很浪费。试试这个:

var allNames = <?php echo json_encode($allNames); ?>;
$('[class^="spec"]').mouseover(function() {
    var id = this.className.substr(4); // more efficient than previous code
    document.getElementById('here').innerHTML = allNames[id];
});

或者,尝试重构您的方法。而不是这个(示例)

<div class="spec1">Hover here</div>

试试这个:

<div class="spec" data-hover="<?php echo htmlspecialchars($allNames[1]); ?>">Hover here</div>

那么你的脚本可以很简单:

$(".spec").mouseover(function() {
    document.getElementById('here').innerHTML = this.getAttribute("data-hover");
});
于 2013-03-19T01:33:58.900 回答
0

你这样做是不对的。在客户端 javascript 中,php 必须已经包含所有变量。

PHP 在 javascript 之前呈现,因此您无法通过 javascript 创建 echo 语句

如果您想从 ajax 动态生成 HTML,这仍然是可能的,因为许多 javascript 库(如 jQuery)的重点是使用选择器动态修改 Document Object 中的元素。

于 2013-03-19T01:31:50.543 回答
0

是的,您可以使用 JSON 来实现。只需像这样调用 PHP 文件

file.php?id=JAVASCRIPT_ID_HERE

然后在那个 PHP 文件中,只需使用$_GET['id']抓取 ID

于 2013-03-19T01:34:09.377 回答