Как отобразить массив PHP в JavaScript? - PullRequest
0 голосов
/ 06 марта 2012

У меня есть массив 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>

Есть мысли?Спасибо за помощь!

Ответы [ 5 ]

2 голосов
/ 06 марта 2012

Вот более чистый способ сделать это, не устанавливая массив в переменную.Используйте атрибут данных, который 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);
});
1 голос
/ 06 марта 2012
  1. Вы должны объявить и заполнить ваш массив, прежде чем использовать его в коде jquery. Переместите код <?php ?> наверх.

  2. Затем передайте весь массив php в javascript, используя 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);  
        });
    });
    
1 голос
/ 06 марта 2012
<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 голос
/ 06 марта 2012

Хотя я не рекомендую выводить php в js ...

var test=JSON.parse(<?php echo json_encode($JNarray['selectedVal']);?>); //where the problem is
0 голосов
/ 06 марта 2012

Я согласен с Тревором, но попробуйте

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

Повторение PHP означает, что вы вызываете свой JS из файла PHP, не очень хороший подход, чувак! Единственное, что я бы передал, может быть BASE_URL или FILE_UPLOAD_TYPE / SIZE, даже если это ewwwwwwwy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...