我使用jquery ajax向一些目标文件(auth.php)发送用户名和密码。 在auth.php文件中,我有许多变量“var a1”,“var b1”。
如果验证成功,变量“a1”设置为通过(a1 ='pass')。
我的问题是如何使用ajax响应从“auth.php”访问唯一的“a1”变量。
小代码如下:
$.ajax({
url: "auth.php",
type: "POST",
data: "dataString",
success: function (txtBack) {
-- here i need to check the variable "a1" from auth.php
}
提前致谢。
答案 0 :(得分:1)
你的JS片段......
$.ajax({
url: "auth.php",
type: "POST",
data: "dataString",
dataType: "json",
success: function (txtBack) {
// here i need to check the variable "a1" from auth.php
alert(txtBack.a1);
}
});
PHP代码段...
echo json_encode(array('a1'=>'whatever'));
答案 1 :(得分:0)
假设你的php返回JSON对象,即{'a1' : 100, 'a2' : 200}
您的回叫功能只能通过txtBack.a1
您还可以使用PHP函数json_encode()将关联数组转换为json,然后将其回显
你的php脚本:
<?php
$arr = array ('a1'=>1,'a2'=>2,'a3'=>3);
echo json_encode($arr);
?>
继承人json_encode()的手册 http://php.net/manual/en/function.json-encode.php
如果您不熟悉JSON,请查看维基百科:http://en.wikipedia.org/wiki/JSON
答案 2 :(得分:0)
如果要返回一个对象,则需要引用它。
txtBack.a1或有时我见过txtBack.d.a1。
虽然如果你要返回一个像这样的对象,这就是c#,这个;
返回新的MyObject {a1 = 10};
然后我认为您需要执行txtBack.MyObject.a1或txtBack.d.MyObject.a1
您也可以考虑将结果作为JSON对象返回。
还可以使用FireBug Firfox添加来查看返回的内容。
答案 3 :(得分:0)
<强>的login.php:强>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="jsFile.js"></script>
<form action='auth.php' method='POST' class='ajaxform'>
<input type='text' name='username' value='TestUsername'>
<input type='password' name='password' value='TestPassword'>
<input type='submit' value='submit'>
</form>
<强> auth.php:强>
<?php
if( $_POST['username'] and $_POST['password'] are authenticated ) {
$arr = array( 'a1' => "Pass" );
} else {
$arr = array( 'a1' => "Fail" );
}
echo json_encode( $arr );
?>
<强> jsFile.js:强>
jQuery(document).ready(function(){
jQuery('.ajaxform').submit( function() {
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
dataType: 'json',
data : $(this).serialize(),
success : function( data ) {
for(var id in data) {
alert( data[id] ); // It will alert all json outputs
}
}
});
return false;
});
});