2016-03-24 2 views
1

У меня есть таблица в базе данных с тремя колонками, prop_no, prop_name, prop_sc в базе данных, и я переехал записи двух последних колонок в 2 PHP массивы $propertyNameList и $propertyCodeList. Теперь у меня есть класс JavaScript Property и массив propList. Мне нужно, чтобы переместить все значения из двух PHP массивов в массив JS с помощьюПередача PHP массив объектов JavaScript массива

propList.push(new Property(1,<?php echo json_encode($propertyNameList[0]); ?>, 
         <?php echo json_encode($propertyCodeList[0]); ?>)); 

используя для цикла, где первый аргумент будет переменная счетчика и индексы массива PHP должны меняться с каждой итерацией. Как я могу это сделать?

+0

Если ответ ниже * ответил * на ваш вопрос, как работает переполнение стека, вы должны «принять» ответ, нажав галочку рядом с ним; [подробнее здесь] (/ help/someone-answers), который снимает с него список оставшихся без ответа вопросов. Но только если на ваш вопрос действительно дан ответ. –

ответ

3

Я бы предположил, что вы немного измените структуру, но вы можете довольно легко сделать это с помощью временных параллельных массивов.

Здесь мы дамп эти параллельные массивы, чтобы на стороне клиента код, а затем сделать петлю там в JavaScript:

(function() { 
    var names = <?php echo json_encode($propertyNameList) ?>; 
    var codes = <?php echojson_encode($propertyCodeList) ?>; 

    for (var n = 0; n < names.length; ++n) { 
     propList.push(new Property(names[n], codes[n])); 
    } 
})(); 

Или, если вы предпочитаете петлю на PHP стороне:

<?php 
    $index = 0; 
    for ($index = 0; $index < count($propertyNameList); ++$index) { 
     echo 'propList.push(new Property(' . json_encode($propNameList[$index]) . ', ' . json_encode($propCodeList[$index]) . '));'; 
    } 
?> 

(я думаю, мой PHP довольно слаб.)

+1

Спасибо за ваш ответ! Я сделал это и получил то, что хотел. –