2015-02-04 3 views
0

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

var username = $("#username").val(); 
var password = $("#password").val(); 
var login = $("#login").val(); 
var remember = $("#remember").val(); 
console.log(username, password, login, remember); //this shows up fine 
$.ajax({  
    url: 'php/login.php',       
    //here i think 
    data: {username:username,password:password,login:login,remember:remember}, 
    type: 'POST',  
    dataType: 'application/json',     
    success: function(data)   
    { .... 

Потому что, когда я получаю на мой login.php я получаю неопределенный индекс строки:

<?php 
$username = $_POST['username']; //here 
$password = $_POST['password']; //here 

if ($_POST['login']) //check if the submit button is pressed 
{ 
    $remember = $_POST['remember']; and here 
..... 

I вернуться в login.php дальше:

echo json_encode("true"); //or "false" 

в области реагирования в поджигатель:

<br /> 
<b>Notice</b>: Undefined index: username in   <b>C:\xampp\htdocs\www\php\login.php</b> on line <b>5</b><br /> 
<br /> 
<b>Notice</b>: Undefined index: password in <b>C:\xampp\htdocs\www\php\login.php</b> on line <b>6</b><br /> 
123123123<br /> 
<b>Notice</b>: Undefined index: login in <b>C:\xampp\htdocs\www\php\login.php</b> on line <b>8</b><br /> 
+0

'** данные:' 'должны быть данные:' - удалить звезды – user4035

+0

я нажал на B для полужирный, так что поставить ** перед –

+0

я поставил комментарий выше линии, так мы могли бы прочитать его без прокрутки – user4035

ответ

1

Попытайтесь использовать php://input Это позволяет вам считывать необработанные данные. Так как ваш используют приложения/JSON вы должны получать данные в сыром

+0

huh? не знакомы с этим? –

1

Попробуйте использовать:

$.ajax({ 
     url: 'php/login.php', 
     data: JSON.stringify({'username':'username','password':'password','login':'login','remember':'remember'}),  
     type: 'POST',  
     dataType: 'json', 
     contentType: "application/json",     
     success: function(data) {..... 
+0

благодарю вас за это, но я все равно получаю undefined index в login.php, я не понимаю, –

+0

попробуйте один раз с вашим абсолютным URL-адресом. – sachin

+0

комментарий 'dataType' &' contentType' и удалить 'JSON.stringify()' – sachin

0

Попробуйте этот путь. Раньше я сталкивался с тем же вопросом, и это единственный способ заставить JQuery правильно отправлять пары ключ/значение, когда вы используете свою собственную строку в качестве ключа.

var username = $("#username").val(); 
var password = $("#password").val(); 
var login = $("#login").val(); 
var remember = $("#remember").val(); 
$.ajax({  
    url: 'php/login.php',       
    data: "username="username + "&password="+password + "&login="+login + "&remember="+remember, 
    type: 'POST',  
    dataType: 'json',     
    success: function(data)   
    { .... 
0

я также получаю такую ​​же проблему, используя этот метод $ .ajax и проходящее все по: ступенчато, но как я reslove этот вопрос, используя следующий фрагмент кода.

<script type="text/javascript"> 
$(function(){ 
    $('#submit').on('click',function(){ 
     var formdata ={ 
      username:$('#username').val(), 
      password:$('#password').val(), 
      message:$('#message').val(), 
      submit:$('#submit').val() 
     }; 
     var url=$('form').attr('action'); 
     console.log(url); 
     console.log(formdata); 
     var posting = $.post(url,formdata); 
     posting.success(function(data){ 
      $('.success').empty().append(data.username); 
      }); 

     }); 
    }); 
</script> 

в этом фрагменте .success является vriible, где он выплескивает имя пользователя после успеха. Ниже приведен пример кода PHP.

<?php 
    foreach($_POST as $key => $val) 
    { 
     $result[$key] = $val; 
    } 
    header('Content-Type: application/json');  
    echo json_encode($result); 
?> 

попробуйте этот метод и дайте мне знать, что он разрешает вашу проблему или нет?

С уважением

Смежные вопросы