我有一个php数组如下:
$city_more = $form->select("GalStore.gal_location_id", $gal_locations,null,$city_attributes);
产生var_dump($city_more)
:
string '<select name="data[GalStore][gal_location_id]" id="locations_list">
<option value="">--- Select City ---</option>
<option value="11">Ahmedabad</option>
<option value="31">Aijwal</option>
<option value="3">Bangalore</option>
<option value="26">Bhopal</option>
<option value="9">Bhubaneswar</option>
<option value="30">Bidar</option>
<option value="10">Chandigarh</option>
<option value="4">Chennai</option>
<option value="1">Delhi - NCR</option>
<option value="34">Dhaka</option>
<option value="21">Dimapur</optio'... (length=1426)
我想在javascript函数中使用这个数组:
$('#add_more_city').click(function(){
var city = '';
alert(<?php echo $city_more; ?>);
});
但它没有提醒任何事情!我的流程是错的吗?
答案 0 :(得分:3)
您在alert()调用中缺少引号。你这样打电话:
alert(test);
应该是:
alert('test');
用
替换你的alert()调用alert('<?= $city_more; ?>');
但是你必须确保这个字符串($ city_more)里面没有更多的单引号('),如果有的话,它们应该被转义。
另外,如果你想将更高级的东西(数组,对象等)从PHP传递给Javascript,可以考虑在PHP中使用json_encode()(以及使用addslashes()转义)和Javascript中的$ .parseJSON()(如果你正在使用jQuery)。像这样:
<script>
var test = $.parseJSON("<?= addslashes(json_encode($array)) ?>");
</script>
答案 1 :(得分:1)
你想要什么?
<script type="text/javascript">
$(document).ready(function() {
// alert in JSON format
alert("<?php echo json_encode($city_more) ?>");
});
</script>
<script type="text/javascript">
$(document).ready(function() {
// alert in "php" format
alert("<?php echo $city_more ?>");
});
</script>