jquery ajax数据类型json不适用于php关联数组

jquery ajax数据类型json不适用于php关联数组,php,jquery,html,ajax,json,Php,Jquery,Html,Ajax,Json,我是stackflow的新手,在使用jquery的json ajax编码值时遇到了一些问题,而jquery脚本什么也没做 这是一个脚本,它什么也不做,只是通过json编码将用户名和密码返回给您 以下是index.html文件的代码: <html> <head> <title>test jquery</title> <script type="text/javascript" src="js/jquery.js"><

我是stackflow的新手,在使用jquery的json ajax编码值时遇到了一些问题,而jquery脚本什么也没做

这是一个脚本,它什么也不做,只是通过json编码将用户名和密码返回给您

以下是index.html文件的代码:

<html>
<head>
    <title>test jquery</title>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {

        $("#button").click(function() {

            var sendu = $("#username").val();
            var sendp = $("#password").val();

            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: "username="+sendu+"&password="+sendp,
                dataType: "json",
                success: function(msg,string,jqXHR){
                    $("#result").html(msg.name);
                }

            });         

        });

    });


    </script>

</head>
<body>

    Name: <input type="text" id="username" name=""username /> <br />
    Password: <input type="password" id="password" name="password" /><br />

    <input type="button" value="send" id="button" />
    <div id="result"></div></p>

</body>
</html>

测试jquery
$(文档).ready(函数(){
$(“#按钮”)。单击(函数(){
var sendu=$(“#用户名”).val();
var sendp=$(“#密码”).val();
$.ajax({
类型:“POST”,
url:“ajax.php”,
数据:“username=“+sendu+”&password=“+sendp,
数据类型:“json”,
成功:函数(msg、string、jqXHR){
$(“#结果”).html(msg.name);
}
});         
});
});
名称:
密码:

这是php文件:

<?php 

$name = $_REQUEST['username'];
$password = $_REQUEST['password'];

$a = array('name'=>$name, 'password'=>$password);

$c = json_encode($list);

echo $c;


 ?>
<?php 

$name = $_REQUEST['username'];
$password = $_REQUEST['password'];


$c = "your name is ".$name."<br />and your password is ".$password;

echo $c;


 ?>

因此,当我删除数据类型:“json”和从php文件中删除关联数组时,一切都很顺利,它成功了

以下是删除json编码后的示例:

html:

<script type="text/javascript">
$(document).ready(function() {

    $("#button").click(function() {

        var sendu = $("#username").val();
        var sendp = $("#password").val();

        $.ajax({
            type: "POST",
            url: "ajax.php",
            data: "username="+sendu+"&password="+sendp,

            success: function(msg,string,jqXHR){
                $("#result").html(msg);
            }

        });         

    });

});


</script>

$(文档).ready(函数(){
$(“#按钮”)。单击(函数(){
var sendu=$(“#用户名”).val();
var sendp=$(“#密码”).val();
$.ajax({
类型:“POST”,
url:“ajax.php”,
数据:“username=“+sendu+”&password=“+sendp,
成功:函数(msg、string、jqXHR){
$(“#结果”).html(msg);
}
});         
});
});
以及php文件:

<?php 

$name = $_REQUEST['username'];
$password = $_REQUEST['password'];

$a = array('name'=>$name, 'password'=>$password);

$c = json_encode($list);

echo $c;


 ?>
<?php 

$name = $_REQUEST['username'];
$password = $_REQUEST['password'];


$c = "your name is ".$name."<br />and your password is ".$password;

echo $c;


 ?>


还有一件事,我不是英国人,所以如果你发现任何常见的语法错误,请忽略

我注意到的一点是,AJAX调用中的这一行应该是:

data: "username="+sendu+"&password="+sendp,
应该是:

data: {username: sendu, password: sendp}

这样,您可以在使用dataType:JSON时访问变量。您的数据不是JSON格式的,只是一个常规URL。大卫·琼斯的答案是正确的。注:使用
$\u POST
而不是
$\u REQUEST
。感谢GuyT的回答,但使用$\u REQUEST和david jonesI有效。我知道,但我只想给你建议使用
$\u POST
$\u请求的问题在于,如果名称相同,它将接受每个方法。换言之;它还接受
$\u COOKIE
$\u SESSION
$\u GET
。对于黑客来说,这将更容易,因为所有的方法都可用(如果你将用户输入进行santinize,你将不会受到攻击)。