使用CakePHP更新下拉选择上的文本框

使用CakePHP更新下拉选择上的文本框,php,jquery,ajax,cakephp,Php,Jquery,Ajax,Cakephp,我有一个下拉列表,在选择一个值时,会发生一个ajax调用,它会填充一个文本框。基本功能正在工作(因为它调用控制器中的一个函数来查找值),但我似乎无法获取文本框的值来显示检索到的值 而不是像这样显示的文本框HTML代码(假设返回值为100.00) 编辑我让它工作了,尽管我不确定这是否是正确的方式 我改变了我的表格,所以房价输入是这样的 ?><div id="room_rate_update"><?php echo $this->Form->input('

我有一个下拉列表,在选择一个值时,会发生一个ajax调用,它会填充一个文本框。基本功能正在工作(因为它调用控制器中的一个函数来查找值),但我似乎无法获取文本框的值来显示检索到的值

而不是像这样显示的文本框HTML代码(假设返回值为100.00)

编辑我让它工作了,尽管我不确定这是否是正确的方式

我改变了我的表格,所以房价输入是这样的

?><div id="room_rate_update"><?php
    echo $this->Form->input('room_rate', array('label' => 'Room Rate (numbers only)'));
?></div><?php

?>不要使用“update”选项来更新提供的DOM项,而是使用“success”选项来命名一个回调函数,以便在成功完成ajax调用时触发。然后在该函数中更新输入值,而不是文本。(与Cake JS助手相比,使用straight javascript或jquery可能更容易一些)


我让它工作了,尽管我会给你的打一针。它将来可能会派上用场。
<input name="data['Visit']['room_rate'] type="text" id="VisitRoomRate">100.00</input> 
//get_room_rate.ctp 

 <?php echo $room_rate; ?>
$this->Js->get('#VisitRoomId')->event('change', 
    $this->Js->request(array(
        'controller'=>'visits',
        'action'=>'getRoomRate'
        ), array(
        'update'=>'#VisitRoomRate',
        'async' => true,
        'method' => 'post',
        'dataExpression'=>true,
        'data'=> $this->Js->serializeForm(array(
            'isForm' => false,
            'inline' => true
            ))
        ))
);
?><div id="room_rate_update"><?php
    echo $this->Form->input('room_rate', array('label' => 'Room Rate (numbers only)'));
?></div><?php
<label for="VisitRoomRate">Room Rate </label>
<input name="data[Visit][room_rate]" maxlength="10" type="text" id="VisitRoomRate" required="required" value="<?php echo $room_rate; ?>"></input>