我在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);
}
然后在调用PHP文件的页面上的JS部分:
function changeContact(contact_name) {
document.getElementById('contact_person').value = contact_name;
}
我在这个例子中输入了数字'987',因为代码只适用于NUMBERS。当我将文本放在括号内,或者我真正想做的事情时:
onclick="changeContact('.$value.')"
然后脚本不起作用。只有数字。我应该更改什么才能使它与字符串一起使用?
答案 0 :(得分:1)
你非常接近。
请改用:
onclick="changeContact("'.$value.'")"
正在发生的事情是JS将其呈现为changeContact(stringValue);
,因此它期望它是一个已定义的变量。
添加引号会将其作为字符串传递给函数,该字符串将呈现为:changeContact("stringValue");