将PHP数组传递给jQuery函数

6

我有一个页面,其中包含一个表单,需要填写客户信息。我将之前的客户数据存储在php数组中。用户可以通过下拉列表使用我的存储数据来填写表单。

我有一个jQuery函数,当下拉列表的值改变时会触发该函数,我希望在此函数内部使用我的存储数据(即php数组)更新表单值。

问题是我不知道如何将我的php数组传递给jQuery函数,有什么办法吗?

以下是我如何填充该数组:

$contador_acompanantes = 0;

foreach ($acompanantes->Persona as $acomp) 
{
  $numero = $acomp->Numero;
  $apellidos = $acomp->Apellidos;
  $nombre = $acomp->Nombre;

  $ACOMPANANTES[$contador_acompanantes] = $ficha_acomp;
  $contador_acompanantes++; 
}

我得到了我的选择对象:

<select name="acompanante_anterior" id="acompanante_anterior">
<option value="1" selected>Acompañante</option>
<option value="2">acompanante1</option>
<option value="2">acompanante2</option>
</select>

这是我所编写的jQuery函数代码(它位于同一个 .php 页面中):

<script type="text/javascript">
$(document).ready(function() 
{ 
$('#acompanante_anterior').on('change', function() 
    {

    });
});
</script>
3个回答

21
var arrayFromPHP = <?php echo json_encode($phpArray); ?>;
$.each(arrayFromPHP, function (i, elem) {
    // do your stuff
});

我正在使用一个简单的数组测试这段代码,并尝试为字符串中的每个值获取一个 Alert(''),但是我什么也没有得到。 - Albert Prats

2
您可能需要使用json_encode将JSON嵌入页面,并使用JSON-js进行解析。在使用此方法时,您应该注意转义</script>、引号和其他字符实体。此外,标准安全问题也适用。演示点击这里:http://jsfiddle.net/imsky/fjEgj/

HTML:

<select><option>---</option><option>Hello</option><option>World</option></select>

<script type="text/javascript">
    var encoded_json_from_php = '{"Hello":[1,2,3], "World":[4,5,6]}';
    var json = JSON.parse(encoded_json_from_php);
</script>

jQuery:

$(function() {
    $("select").change(function() {
        $(this).unbind("change");
        var val = json[$(this).val()];
        var select = $(this);
        $(this).empty();
        $.each(val, function(i, v) {
            select.append("<option>" + v + "</option>");
        });
    });
});

0

试试这个...

<script type="text/javascript">
    $(document).ready(function() 
    { 
    $('#acompanante_anterior').on('change', function() 
        {
            my_array = new Array();

            <?php foreach($array as $key->val)?>
                my_array['<?php echo $key?>'] = '<?php echo $val;?>';
            <?php endif; ?>

        });
    });
    </script>

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