如何使用zend框架2在更改下拉值时在输入字段内显示值

Posted

技术标签:

【中文标题】如何使用zend框架2在更改下拉值时在输入字段内显示值【英文标题】:How to show value inside input filed on change of drop down value using zend framework 2 【发布时间】:2014-08-14 07:38:22 【问题描述】:

我正在尝试在 zend 框架 2 中创建一个 onchange 事件。假设如果我更改选项表单下拉列表,那么相关值将显示在输入字段中。这里我的下拉列表工作正常。但是当我尝试更改下拉列表时然后我的输入字段上没有显示值。但是数据来了。但没有显示在浏览器上。所以告诉我这是怎么可能的。 这是我的控制器

public function propratingAction()


  $projectName = $this->propinquity()->projectName();

  if($this->getRequest()->isPost())
  
    $project =$this->getRequest()->getPost('project'); 
    $projectD = json_decode($project, true);
    //print_r($projectD);
    $propinquityindex=$this->propinquity()->getproprating($projectD);
    $propratinghtml=$this->propratingHTML($propinquityindex);
    print_r($propratingHTML);
  

  $viewModel = new ViewModel();
  $viewModel->setVariables(array('key' => 'value'))
            ->setTerminal(true);

  return $viewModel;


public function propratingHTML($propinquityindex)

  $html='';
  foreach ($propinquityindex as $value) 
    # code...
    $html .='<input type="text" value="'.$value['critics_rating'].'"/>';
  
  print_r($html);

  $viewModel = new ViewModel();
  $viewModel->setVariables(array("key" => "value"))
            ->setTerminal(true);


  return $viewModel;

这里是视图部分

<div style="display:inline-block; margin-left:55px; margin-top:20px;"> 
  <select style="width:12.5em;"  id="project_id" onchange="getsectorindexAjax();" 
          data-placeholder="Project Name" class="selectError2" data-rel="chosen" 
          name="project_id" >
    <option value="">--select project--</option>
    <?php if($this->projectName)
      foreach($this->projectName as $val)

        echo '<option value="'.$val['project_id'].'">'.$val['Project_name'].'
                  </option>';
      
     ?>
  </select>
</div>

<div class="main" style="display:inline-block; margin-left:10px;margin-top:20px;">
  CRc Rating
  <input style="width:20em;height:2.7em;"  name="critics_rating" 
         id="critics_rating" type="text" value="">
</div>

ajax 调用

function getsectorindexAjax()


  require(["dojo/request", "dojo/query","dijit/registry"], function(request, registry) 
    // Locate the JS object.
    var project = dojo.byId("project_id").value;
    //alert(project);

    request.post("http://localhost/admin/propinquity/proprating",
      data : 
        project : JSON.stringify(project)
      
    ).then(function(text) 
      dojo.byId("critics_rating").innerHTML = text;
      console.log("return data : " + text);           
    );

  );

所以建议我当我的下拉值发生变化时如何在输入字段中显示值。

【问题讨论】:

【参考方案1】:

你可以试试这样的:

 var dropdown= dijit.byId("project_id"); //get the select element

 //on change event
 dropdown.on('change', function(evt) 
    //get the selected value
    var project = dropdown.get("value");

   //your ajax request

   request.post("http://localhost/admin/propinquity/proprating",
        data : 
           project : JSON.stringify(project)
        

    ).then(function(text) 
      dijit.byId("critics_rating").attr("value", text);
      console.log("return data : " + text);                                              

    );
);

【讨论】:

以上是关于如何使用zend框架2在更改下拉值时在输入字段内显示值的主要内容,如果未能解决你的问题,请参考以下文章

选择下拉选项时在表单中添加输入字段

更改下拉值时提高 jquery 的性能

在下拉列表中选择特定值时如何在联系表单 7 中启用字段

如何在下拉列表更改时更新两个文本字段

Angular:在更改和设置字段值时禁用字段

如何使用 zend from 在 zend 框架 2 中添加自定义属性