来自目标文件的变量的jquery ajax响应

时间:2010-09-16 05:43:31

标签: php jquery ajax

我使用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
          }

提前致谢。

4 个答案:

答案 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

访问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)

你必须使用jQuery + JSON这样的组合:

<强>的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;
    });

});