我在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.')"
然后脚本不起作用。只有数字。我应该更改什么才能使其与字符串一起使用?
你非常接近。
请改用这个:
onclick="changeContact("'.$value.'")"
发生的事情是JS将其渲染为changeContact(stringValue);
因此它期望它是一个定义的变量。
添加引号会将其作为字符串传递到函数中,该字符串将呈现为: changeContact("stringValue");