Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Как совместить данные php с js? (https://javascript.ru/forum/css-html/83024-kak-sovmestit-dannye-php-s-js.html)

deman1 29.08.2021 16:08

Как совместить данные php с js?
 
Здравствуйте, подскажите пожалуйста, как мне организовать запись и вывод данных с php в js.
У меня есть массив, который разбит по именам
$w['id'],$w['st'],$w['name'],$w['value']
, и мне его надо сохранить в array в js и потом запрашивать без обновления страницы, при выборе, например, статуса 1,
все данные должны пройти проверку на статус и отфильтровать, а затем уже вывести, если их статус соответствует.
Сейчас у меня так:
var array = {1: 'test', 2: 'test2', 3: 'test3'};
$.each(array, function(id, name) {
    $('#test').append('<option value="' + id+ '">' + name+ '</option>');
});


Вот что-то вроде этого только надо на js
<?php foreach($test as $w): ?>
<?php if($w['st'] == $status)?>
<option value="<?php echo $w['id']?>"><?php echo $w['name']?></option>
<?php endforeach; ?>


"value" мне нужен, чтобы я мог потом запрашивать его у массива js по id ячейки.
Примерно, я вижу так:
ячейка 1(id,st,name,value), ячейка 2(id,st,name,value) и тд,
чтобы можно было вызывать по типу arr[1][3](value)
Вот мне что-то похожее надо реализовать, но не знаю как подскажите пожалуйста.

Кратко, я не знаю как хранить данные в jsправильно и потом читать их в js.

ksa 29.08.2021 18:32

Я по ПХПшному не особо понимаю... Но у тебя есть как минимум два пути:
- генерить некий стационарный JS прямо с данныим
- присылать данные по запросу со страницы

voraa 29.08.2021 20:27

var array = {1: 'test', 2: 'test2', 3: 'test3'};
$.each(array, function(id, name) {
$('#test').append('<option value="' + id+ '">' + name+ '</option>');
});

Это должно так записываться
var array = [ 'test',  'test2',  'test3'];
array.forEach( function(name, id) {
    $('#test').append(`<option value="${id+1}">${name}</option>`);
});

deman1 29.08.2021 20:37

Цитата:

Сообщение от voraa (Сообщение 539833)
var array = {1: 'test', 2: 'test2', 3: 'test3'};
$.each(array, function(id, name) {
$('#test').append('<option value="' + id+ '">' + name+ '</option>');
});

Это должно так записываться
var array = [ 'test',  'test2',  'test3'];
array.forEach( function(name, id) {
    $('#test').append(`<option value="${id+1}">${name}</option>`);
});

спасибо огромное

voraa 29.08.2021 20:39

Скорее всего вам нужен массив объектов
test = [{id:, st:, name:, value:}, ....]

// находим элемент с нужным статусом status
let el = test.find( w => w.st === status)
if (el) { // если нашли
  $('#test').append(`<option value="${el.id}">${el.name}</option>`)
}


Я так понял ваш вопрос.


Часовой пояс GMT +3, время: 11:45.