单击按钮可更改文本输入的文本

时间:2015-06-10 16:52:15

标签: javascript ajax codeigniter

我在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.')"

然后脚本不起作用。只有数字。我应该更改什么才能使它与字符串一起使用?

1 个答案:

答案 0 :(得分:1)

你非常接近。

请改用:

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

正在发生的事情是JS将其呈现为changeContact(stringValue);,因此它期望它是一个已定义的变量。

添加引号会将其作为字符串传递给函数,该字符串将呈现为:changeContact("stringValue");