Как получить ответ ajax от успеха и назначить его переменной, используя jQuery?

Привет, ребята, у меня проблема с ответом от моего ajax. Если я покажу его в консоли. Я могу просмотреть его. Но как назначить его в переменной?

Вот что у меня есть. В моем PHP-коде у меня есть это

public function checkPassword($password){ $username = $this->session->userdata('username'); $validate = $this->members_model->checkPassword($password,$username); echo $validate; } 

В моем jquery у меня есть это

 $('#existing').on('keyup',function(){ var id = '<?php echo $this->session->userdata("user_id"); ?>'; var password_url = '<?php echo site_url("member/checkPassword/' +id+ '"); ?>'; $.ajax({ type: 'POST', url: password_url, data: '', dataType: 'json', success: function(response){ var g = response; if(g == 1){ $('#existing_info').html('Password is VALID'); //Doesn't display the VALID if the response is 1. Why? }else{ $('#existing_info').html('Password is INVALID!'); } } }); }); 

Related of "Как получить ответ ajax от успеха и назначить его переменной, используя jQuery?"

 $.ajax({ type: 'POST', url: password_url, data: '', dataType: 'json', success: function(response){ var k=response; if(k.indexOf("1") != -1) $('#existing_info').html('Password is VALID'); else $('#existing_info').html('Password is INVALID!'); } }); 

response – в переменной ответа функции успеха.

indexof возвращает индекс в вызывающем объекте String первого вхождения указанного значения, начиная поиск в fromIndex, возвращает -1, если значение не найдено .

попробуй что-нибудь вроде этого

  <script> var k = null; $(function(){ $('#existing').on('keyup',function(){ var id = '<?php echo $this->session->userdata("user_id"); ?>'; var password_url = '<?php echo site_url("member/checkPassword/' +id+ '"); ?>'; $.ajax({ type: 'POST', url: password_url, data: '', dataType: 'json', success: function(response){ if(response == 1){ k = response; } } }); }); }) </script> 

В вашем ответе на успех вы получите то, что вы настроили для вывода в php. Если вы хотите получить массив или набор данных, вы можете закодировать его в json в вашем php-скрипте, например

 echo json_encode($validate); 

Затем в вашем jquery вы можете использовать этот ответ, как это

 var responseData = jQuery.parseJSON(response); console.log(responseData); 

console.log будет печатать json-объект в консоли браузера. Вы можете использовать этот json-объект таким образом

 responseData.some_data 

Ajax является асинхронным, поэтому у вас будет доступ к нему после возврата метода ajax:

 $('#existing').on('keyup',function(){ var id = '<?php echo $this->session->userdata("user_id"); ?>'; var password_url = '<?php echo site_url("member/checkPassword/' +id+ '"); ?>'; $.ajax({ type: 'POST', url: password_url, data: '', dataType: 'json' }).then(function(response){ var k; if(response == 1){ k = response; //call another function that needs k here } }); }); 
  $.ajax({ type: 'POST', url: password_url, data: '', dataType: 'json', success: function(response){ k=response; } }); 
 var k = null; $('#existing').on('keyup', function() { var id = '<?php echo $this->session->userdata("user_id"); ?>', password_url = '<?php echo site_url("member/checkPassword/' +id+ '"); ?>'; $.ajax({ type : 'POST', url : password_url, success : function(data) { if(data === '1') { k = data; } } }); }); 

сам параметр ответа содержит данные, поэтому просто назначьте это переменной и используйте его.

  $.ajax({ type: 'POST', url: password_url, success: function(response){ if(parseInt(response) == 1){ var k = response; } } }); 

Ваши данные ответа находятся в переменной response функции успеха. Поскольку тип ответа – json, вы можете назначить его непосредственно переменной javaScript.

Кроме того, вы не ошибаетесь, if(g == '1') вместо if(g == 1) . Вы получаете строку как ответ и проверяете равенство с числовым типом, который не будет равным ни в какой точке.

а именно: –

 $.ajax({ type: 'POST', url: password_url, data: '', dataType: 'json', contentType:"application/json",// Add Content type too success: function(response){ k=response; } }); 

если ваш ответ json показан ниже

 {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} 

вы можете получить доступ к массиву menuitem как

 success: function(response){ k=response.menu.popup.menuitem; }