Получение выходных данных, но также получение неопределенного первого в AJAX - PullRequest
0 голосов
/ 22 сентября 2019

У меня выпадающий список, и когда он меняется, я вызываю ajax в зависимости от значения выпадающего меню.Если выпадающий список value равен 2, то он вызовет ajax и отобразит данные.

Теперь моя проблема заключается в том, что 1) я получаю вывод, но также получаю неопределенное значение.

enter image description here

2) После получения выходного сигнала мне нужно отобразить условие if-else, но оно отображает только undefined.

Контроллер

public function getRMname(){
  $result= $this->Employee_model->getRMname();
  if($result)
    {
      foreach ($result as $key => $value) {
              $data[] = array('rmfirstname' =>$value->firstname , 'rmlastname'=>$value->lastname,'rmid'=>$value->id);
      }
    }
    else
    {
      $data = "false"; 
    } 
       echo json_encode($data); 
   }

Сценарий

$(document).on('change', '.pp_Status', function(event) {
  var addrm;
  if ($(this).val() == '2') {
    $.ajax({
      type: "POST",
      url: baseUrl + "/Employee_control/getRMname",
      //data: {},
      dataType: 'json',
      success: function(response) {
        addrm += '<select name="addrm" class="input-wrapper"><option value="" selected disabled>Select</option>';
        $.each(response, function(key, data) {
          addrm += '<option value="' + data.rmid + '">' + data.rmfirstname + ' ' + data.rmlastname + '</option>';
        });
        addrm += '</select>';

      }
    });
  } else {
    addrm = '';
  }
  if (somecondition) {

} else {
 echo addrm;
    //displaying addrm variable here
  }
});

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

используйте =''; в определении переменной

var addrm=''; вместо

var addrm;

beacause Переменная означает все, что может vary, вам необходимосначала объявите empty String, а затем после объединения строк с символом +=.

0 голосов
/ 22 сентября 2019

Чтобы быть в безопасности, определите переменную как var addrm = '';

Уберите состояние else, чтобы оно работало только при выбранном параметре 2.

Наконец,Блок, который проверяет, выбрана ли выбранная опция 2, выполняется независимо от выбранной опции, потому что вы не нацеливаетесь должным образом.

Это должно быть:

if( $(this).find(':selected').val() == '2' ) {}

Потому что то, что у вас там, не имеетпроверьте выбранное значение, попробуйте войти в консоль, чтобы проверить возвращаемое значение:

 console.log($(this).find(':selected').val());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...