将php数组传递给jquery函数
Posted
技术标签:
【中文标题】将php数组传递给jquery函数【英文标题】:pass php array to jquery function 【发布时间】:2012-06-01 06:36:50 【问题描述】:我有一个页面,其中包含一个表格,用于填写客户信息。我将以前的客户数据存储在一个 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>
【问题讨论】:
【参考方案1】:var arrayFromPHP = <?php echo json_encode($phpArray); ?>;
$.each(arrayFromPHP, function (i, elem)
// do your stuff
);
【讨论】:
我正在用一个简单的数组测试这段代码,并试图为我的字符串中的每个值获取一个 Alert(''),但我没有得到任何结果【参考方案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>");
);
);
);
【讨论】:
【参考方案3】:试试这个..
<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>
【讨论】:
以上是关于将php数组传递给jquery函数的主要内容,如果未能解决你的问题,请参考以下文章
将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP