Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过使用JavaScript变量作为索引来访问PHP数组元素_Php_Javascript_Arrays_Indexing - Fatal编程技术网

通过使用JavaScript变量作为索引来访问PHP数组元素

通过使用JavaScript变量作为索引来访问PHP数组元素,php,javascript,arrays,indexing,Php,Javascript,Arrays,Indexing,代码如下所示: PHP文件 <?php ... $arrayName = ['ArrayValue_0', ..., 'ArrayValue_n']; ... php?> JavaScript $('.elementClass').each(function(index, id) { $(id).html('<?php echo $arrayName[index - 1]?>'); }); $('.elementClass')。每个(函数(索引,id){

代码如下所示:

PHP文件

<?php
...
$arrayName = ['ArrayValue_0', ..., 'ArrayValue_n'];
...
php?>

JavaScript

$('.elementClass').each(function(index, id) {
    $(id).html('<?php echo $arrayName[index - 1]?>');
});
$('.elementClass')。每个(函数(索引,id){
$(id).html(“”);
});
但您不能将这样的JavaScript变量插入php标记中,这样就永远不会收到索引。 我知道这可以通过AJAX实现,但还有其他方法吗?提前谢谢

其他信息:
我被告知要在PHP中执行此操作,因此无法将数组切换到JS文件。

如果希望从服务器获取信息,则需要返回服务器(PHP在服务器上运行),因此,要么在加载包含PHP数组完整内容的页面时动态创建javascript变量,要么使用ajax返回服务器,而不刷新整个页面。

您尝试的操作将不起作用。例如:

$(id).html('<?php echo $arrayName[index - 1]?>');
$(id).html(“”);
上述方法永远不会奏效,因为PHP是在服务器上运行的,而不是在用户的浏览器上运行的

您需要做的是以某种方式将变量发送到服务器。你有很多选择:

  • 使用表单并读取
    $\u POST
    变量
  • 将其附加到URL并读取
    $\u GET
    变量
  • 使用AJAX并将该变量异步发送到服务器
  • 将整个数组从PHP返回到Javascript代码
  • 等等等等

  • 记住,PHP在服务器上运行,服务器呈现页面,然后运行Javascript的浏览器读取页面。您不能将PHP代码粘贴到页面中,并期望它被PHP解析

    您可以在JS中定义
    arrayName
    变量,并使用服务器上的值对其进行初始化:

    var arrayName = <?php echo json_encode($arrayName); ?>;
    $(".elementClass").each(function(index, id) {
        $(id).html(arrayName[index-1]);
    });
    
    var arrayName=;
    $(“.elementClass”)。每个(函数(索引,id){
    $(id).html(arrayName[index-1]);
    });
    
    PHP是一种服务器端语言。当客户端收到页面时,PHP代码已经执行。所以,不,你不可能用这个把戏做到。这正是我的目标。非常感谢。