2017-02-17 37 views
0

Есть ли способ создать javascript для PHP-кода, который будет выполняться при запуске на php-странице? Я пытаюсь установить значение ввода, где div_id - это переменная js, а входы - это 2D ассоциативный массив.

Проблема в том, что она буквально устанавливает значение "" вместо значения поля floor_type. Все остальное, похоже, работает.

inputs_div.innerHTML += `<div id="`+div_id+`" class="dynamic_div"> 
         <ul class="dynamic_ul"> 
         <li><input type="text" onblur="$('.save').click();" placeholder="Flooring Type: Wood Floor, Tile, etc." name="inputs[`+div_id+`][floor_type]" maxlength="255" value="<?php echo $_SESSION['inputs']['`+div_id+`']['floor_type']; ?>"></li> 
         </ul> 
         </div> 

Я создаю некоторые HTML входы динамически с помощью JavaScript, но я искал способ, чтобы предотвратить их от получения очищается, если страница обновляется. Может быть, есть более простой способ заставить входные данные оставаться там?

Моя идея состояла в том, чтобы использовать ajax для запуска некоторого php-кода из события onblur каждого элемента ввода, который сохраняет входной массив [] [] в сеанс, поэтому он не теряется при обновлении страницы.

+0

PHP выполнить сначала и js после. в вашем коде php необходимо 'div_id', вызывающее проблему – C2486

+0

Вы не можете распечатать сеанс в javascript. Проверьте это [http://stackoverflow.com/questions/3362417/is-it-possible-to-read-a-php- session-using-javascript] – Nawin

+0

Вы не можете использовать переменные javascript в php –

ответ

1

Используйте скрытое поле для хранения значения $ _SESSION [], а затем на готовом документе получите значение скрытого поля и установите для переменной javascript.

<input type="hidden" id="hdn" value="<? php echo $_SESSION['inputs'] ?>" /> 


$(document).ready(function() 
{ var session_value = $('#hdn').attr('value'); // now use session_value variable when set the innerhtml of inputs_div }); 
+0

Я попробую это :) – ioan

+0

hmm, значение hdn в конечном итоге является просто «массивом», а не фактическим массивом. Входы - это 2D ассоциативный массив. Поэтому мне нужно найти способ скопировать его из сеанса в массив js. – ioan

+0

Возможно, я могу сохранить массив ввода в файл cookie или sessionstorage. Но тогда я не уверен, что помещать в событие onblur каждого входа. – ioan

Смежные вопросы