2015-09-03 2 views
0

В моем js-файле я отправляю массив данных в свой php-файл, и я хочу напечатать имя в #NAME и пароле в #PASSWORD, но я получаю оба значения имени и пароля в #NAME и #PASSWORD, что-то вроде этого :Как вернуть определенные данные из php в jquery ajax?

enter image description here

, как я хочу его напечатать:

enter image description here

$("#name").keyup(function() { 
 
    var form = $("#form").serialize(); 
 
    $.ajax({ 
 
    type: "POST", 
 
    url: "index.php", 
 
    data: form, 
 
    success: function(data) { 
 
     $("#NAME").html(data); 
 
    } 
 
    }); 
 
}); 
 

 
$("#password").keyup(function() { 
 
    var form = $("#form").serialize(); 
 
    $.ajax({ 
 
    type: "POST", 
 
    url: "index.php", 
 
    data: form, 
 
    success: function(data) { 
 
     $("#PASSWORD").html(data); 
 
    } 
 
    }); 
 
});
<html> 
 

 
<body> 
 

 
    <form id="form" action="index.php" method="post"> 
 

 
    Name : 
 
    <input type="text" name="name" id="name" /><span id="NAME">I want name here from index.php, but it returns both name and password</span> 
 
    <br/> 
 
    <br/>Password : 
 
    <input type="password" name="password" id="password" /><span id="PASSWORD">I want password here from index.php, but it returns both</span> 
 
    <br/> 
 
    <br/> 
 
    is there any other way of doing it in the same index.php file? 
 

 
    </form> 
 

 
    <script src="jquery.js"></script> 
 
    <script src="js.js"></script> 
 

 
</body> 
 

 
</html>

ответ

1

Поскольку вы отправляете ту же форму для обоих вызовов, было бы проще объединить ее в один вызов и обработать оба экземпляра и вернуть данные через массив.

PHP

$arr = array(); 
$arr[0] = "John Doe"; 
$arr[1] = "password"; 

echo json_encode($arr); 
exit(); 

JQuery

$.ajax({ 
    type: "POST", 
    url: "index.php", 
    data: form, 
    dataType: "json", 
    success: function(data) { 
    $("#NAME").html(data[0]); 
    $("#PASSWORD").html(data[1]); 
    } 
}); 

Обратите внимание, что вы должны убедиться в том, чтобы включить DATATYPE в вашем $.ajax вызова, так что JQuery знает, как разобрать ответ.

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