jquery ajax数据类型json不适用于php关联数组
我是stackflow的新手,在使用jquery的json ajax编码值时遇到了一些问题,而jquery脚本什么也没做 这是一个脚本,它什么也不做,只是通过json编码将用户名和密码返回给您 以下是index.html文件的代码: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"><
<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,你将不会受到攻击)。