我有一个返回数组的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函数?
答案 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