2013-11-09 3 views
1

Итак, я создал форму в html/javascript для сайта, который использует CodeIgniter. Собранные данные вставляются в MySQL db. В следующий раз, когда пользователь вернется к этой форме, я хочу повторно заполнить эту форму данными из db. Таким образом, некоторые MySQL запускается, и вид называется так:CodeIgniter View Input Questions

$this->load->view('my_view', $data); 

Я могу вставить элементы из массива $ данных в HTML, как:

<h2><?php echo $somevariable ?></h2> 

Но как бы я ссылаться переменная, входящая в массив $ data [] в части JS? Я пытался что-то вроде:

if (<?php echo $somevariable ?> == 'Yes') { //do something } 


EDIT: Это было решено, обернув левую часть сравнения в кавычки (Спасибо Аникет!)

if ('<?php echo $somevariable ?>' == 'Yes') { //do something } 

Этот громоздкий способ обработки все это благодаря CodeIgniter, выполняющему вызов функции extract() PHP в массиве данных между контроллером и представлением. Массив уже не массив, а набор переменных с соответствующими значениями. Интересно, есть ли способ избежать этого. Это позволило бы кодировщикам просто преобразовать массив $ data в массив значений, с которым JavaScript может легко считываться, без необходимости индексирования жесткого кода.

+1

Мы должны видеть код и ошибки/проблемы .... и пожалуйста, попробовать и сделать ваши вопросы как можно более краткими –

+0

К сожалению, не был знаком с методом StackExchange о отображение кода, и я отредактирую его. – JonasJSchreiber

+0

, пожалуйста, прочитайте [наилучшую страницу faq] (http://stackoverflow.com/help/on-topic) –

ответ

1

Что вы делаете правильно, но когда PHP выводит что-то с помощью echo, он просто отображается как обычный текст. Вам нужно преобразовать его в строку.

должно работать:

if ('<?php echo $speaking_location ?>' == 'Yes') { //do something } 
+1

Спасибо тонну! Все остальное я могу использовать обходные пути для. Все еще нужно изучить настройки значений по умолчанию для переключателей и как предварительно выбирать значения из выпадающих меню, но это был основной блокпост. Очень признателен! Если бы я мог это сделать, я бы это сделал. – JonasJSchreiber

+0

@JonasJSchreiber Нет проблем, приятель! Я помню это, потому что я тоже пережил это. И вы можете поддержать это. Дайте мне знать, если вам нужна помощь в другом месте. Установка значений по умолчанию очень проста, в CodeIgniter есть положение. – Aniket

+1

Видимо, мне нужно 15 репутации для повышения. Добавлено ваше исправление и последующие действия выше. Я просто собираюсь добавить «любезность Аникет» к OP. – JonasJSchreiber