如何使用zend框架2在输入字段内显示下拉值变化的值

时间:2014-08-14 07:38:23

标签: ajax zend-framework dojo zend-framework2

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

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 call

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 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

 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);                                              

    });
});