如何用 PHP 数组值替换 jQuery 变量值

3
我正在使用 PHP,并希望使用 jQuery 更改下拉菜单的值,我想将 PHP 数组传递到 jQuery 变量中(使下拉菜单值动态化)。目前,我得到的数组($data)格式如下:
Array
(
    [0] => stdClass Object
        (
            [UserId] => 8
            [name] => web1
        )

    [1] => stdClass Object
        (
            [UserId] => 9
            [name] => web2
        )
)

以下是我的脚本,它展示了静态的“下拉菜单”值,但我希望将php数组(名称)的值传递到下拉菜单中,以便我可以制作动态下拉菜单。
<script>
    var newOptions = {
    "Select your user":"",
    "Option 1":"option-1",
    "Option 2":"option-2"
    };

    var $el = $('#acf-field_628e17fc947e4');
    $el.html(' ');
    $.each(newOptions, function(key, value) {
    $el.append($("<option></option>")
    .attr("value", value).text(key));
    });
</script>

将最后一行改为:$el.append('<option value="'+value+'">'+value+'选项</option>') - Vinod Patidar
@VinodPatidar:我想使用 PHP 数组值(name)而不是静态值(newOptions)。 - Amy
2个回答

2
var newOptions = <?php echo json_encode($array); ?>;

然后将您的追加行更改为以下内容,就可以开始了。
$el.append('<option value="'+ value.UserId +'">'+ value.name +'</option>');

可行代码段:

var newOptions = [{"UserId":8,"name":"web1"},{"UserId":9,"name":"web2"}];
var $el = $('#acf-field_628e17fc947e4');
$el.html(' ');
$el.append('<option value="">Select your user</option>');
$.each(newOptions, function(key, value) {
    $el.append('<option value="'+ value.UserId +'">'+ value.name +'</option>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select id="acf-field_628e17fc947e4"></select>

注意:要添加选择选项,请按以下方式将其添加到数组中:
array_unshift($array , ['UserId'=>'',"name":"name":"web1"]);

然后移除这行代码:$el.append('<option value="">Select your user</option>');


0

你需要将一个数组从PHP传递到JS,因此可以使用json_encode,例如:(下面的示例是动态的)

<?php
    $phpArray = array(
        0 => "Mon", 
        1 => "Tue", 
        2 => "Wed", 
        3 => "Thu",
        4 => "Fri", 
        5 => "Sat",
        6 => "Sun",
    )
?>

<script type="text/javascript">

    var jArray = <?php echo json_encode($phpArray); ?>;

    for(var i=0; i<jArray.length; i++){
        alert(jArray[i]);
    }

 </script>

我可以做到,但是我该如何使用循环来展示呢?因为下拉菜单中可能有多个值。 - Amy
正如我所提到的,下拉列表的值是多个,那么我该如何显示多个动态值呢? - Amy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接