繁体   English   中英

如何在JavaScript中回显PHP数组?

[英]How to echo php array in javascript?

我有一个由服务器端代码生成的php数组。 在用户从下拉菜单中选择一个选项后,我想在输入字段中显示数组值。 请查看我的代码:

$(document).ready(function(){
$('select[name="job_number"]').change (function () {
    var selectedVal = $(this).val();
    var test="<?php echo $JNarray['selectedVal'];?>"; //where the problem is
    $('input[name="project"]').val(test);  
//I want show value1 to value 3 in my input field when user picks 
//an option from my dropdown menu. 

});

<?php 
   $JNarray['job1']=value1;
   $JNarray['job2']=value2;
   $JNarray['job3']=value3;
?>

<form action='project_manager' method='post'>
<input type='text' name='project' value='show value1 to value3 when user picks an option' />
<select name='job_number'>
<option value='job1'>job1</option>
<option value='job2'>job2</option>
<option value='job3'>job3</option>
</select>

</form>

有什么想法吗? 谢谢您的帮助!

这是一种更干净的方法,而不必将数组设置为变量。 使用jQuery通过$ .data()读取的数据属性

HTML:

  <option value='job1' data-job-val="<? echo $arrayvalue ?>">job1</option>

JS:

$('select[name="job_number"]').change (function () {
    var test=$(this).find('option:selected').data('job-val');
    $('input[name="project"]').val(test);
});

虽然,我不建议在js中回显php ...

var test=JSON.parse(<?php echo json_encode($JNarray['selectedVal']);?>); //where the problem is
<select name='job_number'>
<option value='<?php echo $JNarray['job1'] ?>'>job1</option>
...
...
</select>

<script>
$(document).ready(function(){
$('select[name="job_number"]').change (function () {
    $('input[name="project"]').val($(this).val()); 
});
</script>

这样的事情。

  1. 您必须先声明并填​​充数组,然后才能在jquery代码上使用它。 将您的<?php ?>代码移到顶部。

  2. 然后将整个php数组传递给javascript,使用Trevor建议的JSON:

     $(document).ready(function(){ var options = JSON.parse(<?php echo json_encode($JNarray);?>); $('select[name="job_number"]').change (function () { var selectedVal = $(this).val(); var test=options[selectedVal]; //where the problem was $('input[name="project"]').val(test); }); }); 

我同意Trevor,但是请尝试

"<?php echo $JNarray['"+selectedVal+"'];?>"

回显PHP意味着您从PHP文件中调用JS,这不是一个好方法!我唯一要传递的可能是BASE_URL或FILE_UPLOAD_TYPE / SIZE,即使那些是ewwwwwwwy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM