如何使用Ajax调用PHP函数?

时间:2011-07-07 12:05:31

标签: ajax

我有一个返回数组的PHP函数:

function lire( $id) {
            $ret = array() ; 
            $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
            $this->db->query($sSQL) ;
            $ret['cnt'] = $this->db->num_rows() ;
                        return $ret;
}

如何在Ajax中调用此PHP函数?

3 个答案:

答案 0 :(得分:3)

你必须把这个代码块放在一个php文件中,并且必须在ajax函数中调用它,如:

    var value = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name="+customvariable,
    async: false
    }).responseText;

some.php文件也有

      if(isset($_POST['name']))
       {
        $id = mysql_real_escape_string($_POST['name']);
        $ret = array() ; 
        $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
        $this->db->query($sSQL) ;
        $ret['cnt'] = $this->db->num_rows() ;
                    echo $ret;
      }

您将在变量中获得返回值。

答案 1 :(得分:0)

在AJAX中,您可以对某些Web资源发出简单的HTTP请求。要从您的函数中获取数据,您可以提供简单的PHP脚本,该脚本将具有url参数(id)并调用您的函数。比你

可以使用合适的Javascript libaray(例如jQuery)来使用该参数调用页面。

function lire( $id) {
        $ret = array() ; 
        $sSQL = "SELECT  *  FROM produit WHERE prod_code = '$id' LIMIT 1" ;
        $this->db->query($sSQL) ;
        $ret['cnt'] = $this->db->num_rows() ;
                    return $ret;
}

$result = lire($_GET['id']); // CONSIDER SOME ESCAPING OF USER INPUT FOR SECURITY!
echo $result; // OR USE SOME OTHER SORT OF SERIALIZATION (e.g. JSON)

也许你必须设置标题(结果的MIME类型)。

答案 2 :(得分:0)

这是对您之前添加的评论的回复。我无法在评论中对其进行格式化。遗憾。

 $(document).ready(function() {

      $("#idofinput").blur(function(){


    var value = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name="+$("#idofinput").val(),
    async: false
    }).responseText;

    myval= parseInt(value);

    if(myval>0)
    {
        //your code goes here
    }
    else
    {
    //your code goes here
    }



    }); 

    });

您可以在文档加载时使用input元素附加函数。

idofinput 替换为输入元素ID