jquery.post () получение и возврат php jQuery - PullRequest
0 голосов
/ 17 февраля 2011

Я делаю следующее ...

запрос в php из HTML (JQuery)

$.post("index.php?res=ok", { username: user, userpass: pass }, function(data) {
    $("#signin_ok").html("You sign in now "+data.name+". Your password is: "+data.pass);
    $("#signin_ok").show()
    .animate({fontSize:"120%"}, 100).css({color:"#32CD32"})
    .animate({fontSize:"100%"}, 100)
    .animate({fontSize:"100%"}, 3000)
    .animate({fontSize:"120%"}, 200, function() {
        $(this).css({display:"none"});
    });
});

возврат из PHP в HTML (JQuery)

if(isset($_REQUEST['res']) && $_REQUEST['res'] == "ok") {
    if(isset($_POST['username']) && isset($_POST['userpass'])) {
        $username = $_POST['username'];
        $userpass = $_POST['userpass'];
        echo json_encode(array("name" => $username, "pass" => $userpass));
    }
}

, но возвращает "Вы сейчас авторизуетесь undefined . Ваш пароль: undefined "

Что не так?Как это исправить?

PS

Когда я добавляю "json" вот так

$.post("index.php?res=ok", { username: user, userpass: pass }, function(data) {
    . . . . . . 
    . . . . . .
}, "json");

нет реакции

Что происходит ???

Ответы [ 4 ]

2 голосов
/ 17 февраля 2011

Попробуйте добавить заголовки JSON в скрипт PHP с помощью

header('Content-type: application/json');
// then your code

Кроме того, кажется, что вы просто возвращаете переданные данные, почему бы вам просто не использовать user и передавать в качестве данных, а не data.user и data.pass?

0 голосов
/ 21 февраля 2011

Я сам решил эту проблему, я так думаю:)

Я создал новый файл (new.php):

<?php
if(isset($_REQUEST['res']) && $_REQUEST['res'] == "ok") {
    if(isset($_POST['username']) && isset($_POST['userpass'])) {
        $username = $_POST['username'];
        $userpass = $_POST['userpass'];
        $arr = array("name" => $username, "pass" => $userpass);
        echo json_encode(array("name" => $username, "pass" => $userpass));
    }
}
?>

и передал запрос из HTML в PHP (new.php)

. . .
$.post("new.php", { "username": user, "userpass": pass, "res": "ok" }, function(data) {
    $("#signin_ok").html("You sign in now "+data['name']+". Your password is: "+data['pass']);
    console.log(data);
    $("#signin_ok").show()
        .animate({fontSize:"120%"}, 100).css({color:"#32CD32"})
        .animate({fontSize:"100%"}, 100)
        .animate({fontSize:"100%"}, 3000)
        .animate({fontSize:"120%"}, 200, function() {
            $(this).css({display:"none"});
        });
}, "json");
. . .

и я получил результат :) но это глупо, почему он не работает в index.php ???

0 голосов
/ 17 февраля 2011

Я отвечу вызовом .ajax, потому что это то, что я использую, так как $ .post в любом случае просто оборачивает $ .ajax ...

$.ajax({

     type: "POST",
     url: "index.php?res=ok",
     data: { "username" : user, "userpass": pass },
     success: function(msg) {

          var data = $.parseJSON(msg);
          alert(data.username);
          alert(data.userpass);

     }

});
0 голосов
/ 17 февраля 2011

Это делает трюк?

$.post("index.php?res=ok", { username: user, userpass: pass }, function(data) {
    $("#signin_ok").html("You sign in now "+data[0].name+". Your password is: "+data[0].pass);
    $("#signin_ok").show()
    .animate({fontSize:"120%"}, 100).css({color:"#32CD32"})
    .animate({fontSize:"100%"}, 100)
    .animate({fontSize:"100%"}, 3000)
    .animate({fontSize:"120%"}, 200, function() {
        $(this).css({display:"none"});
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...