2015-06-10 5 views
0

У меня есть эта часть кода в контроллере CodeIgniter под названием «ajaxcalls»:Нажмите на кнопку, чтобы изменить текст ввода текста

public function show_contact_persons($client_id) { 
     $data['contact_persons'] = $this->common_model->select_records('ci_contact_persons', 'client_id', $client_id); 
     //dump($data); 

    function echoArray ($array) { 
     foreach ($array as $key => $value) 
     { 
      if (true == is_array($value)) 
      { 
       echoArray($value); 
      } 
      else 
      { 
       if ($key == 'contact_person_name') { 
        echo '<input type="button" value="'.$value.'" onclick="changeContact(987)" /><br />'; 
       } 
      } 
     } 
    } 
    echoArray($data); 

} 

, а затем JS часть на странице, которая звонит файл PHP:

function changeContact(contact_name) { 
      document.getElementById('contact_person').value = contact_name; 
     } 

В этом примере я помещал номер «987», потому что код работает только с NUMBERS. Когда я положил текст в скобки, или то, что я действительно хочу сделать:

onclick="changeContact('.$value.')" 

то скрипт не работает. ТОЛЬКО с цифрами. Что я должен изменить, чтобы заставить его работать со строками?

+0

положенных цитаты вокруг вара вы переходящий в 'changeContact()' в противном случае он будет отображаться как 'changeContact (thisIsUndefined) 'который работает для int, но не как строка с котировками, потому что тогда JS связывает его как ранее определенную переменную – Pogrindis

ответ

1

Вы очень близки.

Используйте вместо этого:

onclick="changeContact("'.$value.'")" 

Что происходит это JS оказывает как changeContact(stringValue); поэтому его ожидая, что она будет определена переменная.

Добавление котировки передаст его в функцию в виде строки, которая будет оказывать как: changeContact("stringValue");

+0

Не должно быть' onclick = "changeContact (\" '. $ value.' \ ")" 'like это или может вызвать проблему синтаксиса, не так ли? – vinayakj

+0

@vinayakj '\\' в php предназначен для использования со специальными символами, это не обязательно, но я не думаю, что это может повредить! – Pogrindis

+0

Благодарим вас за предоставленное решение, которое, похоже, не работает на моей стороне .... Я пробовал со всеми комбинациями цитат. Когда я помещаю число внутри скобки (без кавычек), он работает ... Как насчет этой части: функция changeContact (contact_name) { \t \t \t document.getElementById ('contact_person'). Value = contact_name; \t \t} ???? – dujmovicv