user3591823
user3591823

Reputation: 37

How to show value inside input filed on change of drop down value using zend framework 2

I am trying to create an onchange event in zend framework 2. suppose if i change option form dropdown list then the related value will be shown on input field .Here my dropdown works fine .but when i am trying to change dropdown list then there is no value shows on my input field.but the data comes.but not display on broweser.So tell me how it is possible. Here is My Controller

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

Here is view part

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

  });
}

So suggest me how can i show value inside input field when my dropdown value is change.

Upvotes: 1

Views: 553

Answers (1)

blackbishop
blackbishop

Reputation: 32700

You can try something like this :

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

    });
});

Upvotes: 2

Related Questions