本文目錄一覽:
- 1、php:使用ajax是怎樣和php文件連接在一起的?
- 2、php +ajax代碼詳解 大神!
- 3、ajax調用PHP類庫中的函數
- 4、php如何和ajax搭配使用
- 5、PHP中運用jQuery的Ajax跨域調用實現代碼
php:使用ajax是怎樣和php文件連接在一起的?
通過GetXmlHttpObject()對象的一些方法和PHP通信的。比如下面這段xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert (“您的瀏覽器不支持AJAX!”);
return;
}
var url=”getcustomer.php”;
url=url+”?q=”+str;
url=url+”sid=”+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open(“GET”,url,true);
xmlHttp.send(null);
}
服務器端可以通過$_GET獲得變量q的值,從而作出反應
php +ajax代碼詳解 大神!
你是在瀏覽器中同時打開1.php和2.php嗎?
怎麼會有兩個表單,在不同的頁面上?
然後,你那個0.js文件是拿來做什麼的?
ajax調用PHP類庫中的函數
直接調用不可能,但可以繞過去調用
a.php
?php
$_token = md5(time());//令牌
$_SESSION[‘_TOKEN’] = $_token;
//….
?
html
…
form
input name=”_TOKEN” value=”?php print $_token; ?”
….
//這裡說一下令牌,令牌一般是服務器端驗證提交數據是否為合法
//與驗證碼功能差不多,不過驗證碼需要手動輸入,這個是程序內部使用
…
處理post
?php
if($_POST[‘_TOKEN’] == $_SESSION[‘_TOKEN’])
{
$_SESSION[‘_TOKEN’] = ”;//清除令牌,防止網絡延緩的再次提交。
…
}
?
然後是ajax
上面我為什麼要在你原來的程序上加入令牌呢,因為可以隨意的調用php函數是很不安全的,很容易被有心人利用,所以做一點安全保護,當然不一定絕對安全
function _new_ajax()
{
//創建XMLHTTPRequests
return xhr;
}
function _ajax(_option)//url, data, type, async
{
//初始化
if(typeof _option.url == ‘undefined’ || _option.url == ”)
{
alert(‘ajax錯誤,沒有定義請求路徑’);
return false;
}
_option.data = _option.data || {};
_option.type = _option.type || ‘GET’;
_option.async = _option.async || true;
_option.callback = _option.callback || function(){};
//開始請求
var xhr = _new_ajax();
if(typeof _option.data == ‘string’)
{
_option.url += (_option.url.match(/\?/) ? “” : “?”) + _option.data;
}
else
{
for(var i in _option.data)
{
_option.url += (_option.url.match(/\?/) ? “” : “?”) + i + ‘=’ + _option.data[i];
}
}
xhr.open(_option.type, _option.url, _option.async);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 xhr.status == 200)
{
var res = xhr.responseText;
_option.callback(res);
}
};
xhr.send(null);
xhr = null;
}
上面的是我簡單寫的,估計考慮不是很全
驗證用戶是否存在就這樣
function check_user_id()
{
document.getElementById(‘useridexist’).innerHTML = “Check the ID, Please wait…”;
var user_id = document.login.userid.value;
//這裡是上面說的,要直接使用函數庫,必須安全驗證
var _TOKEN = document.login._TOKEN.value;
_ajax({
url:’class/useridexist.php’,
data:{_TOKEN:_TOKEN, function:check_user, id:user_id},//調用php函數check_user
callback:function(res){
document.getElementById(‘useridexist’).innerHTML = res;
}
})
}
好了,準備就緒,現在看php端了
b.php
?php
if($_GET[‘_TOKEN’] == $_SESSION[‘_TOKEN’])
{
//這裡不清除令牌,因為提交post還要使用,驗證在前,提交post在後
$function = $_GET[‘function’];
if(function_exists($function))
{
$function($_GET);
}
else
{
print ‘函數’.$function.’不存在’;
}
}
//以下為函數庫
function check_user($get)
{
//…..驗證存在否,輸出
}
?
php如何和ajax搭配使用
需要先向目標Pager.php傳值:
——即應該在ajaxSubmit()函數的「 var URL=”Pager.php?active_time_start=”+start_time+”active_time_end=”+end_time;」語句上再加上改變後的sql語句,然後再在「Pager.php」文件內予以執行,然後再將其(即Pager.php)執行結果傳回!
如:var URL=”Pager.php?……end_timeSql=Sql;」
PHP中運用jQuery的Ajax跨域調用實現代碼
可以在頁面定義一個調用方法,如下:
複製代碼
代碼如下:
function
getData(){
$.getJSON(“?”,
{
“m”:”data”,//
指定php的文件名字
“act”:”getdata”,//
指定php文件中的方法
“name”:”問題兒童”//
傳入的參數
},
function(data)
{
//
獲得返回值
}
});
}
對應鏈接下(123.123.123.123)的PHP文件,一般默認先調用index.php文件,通過index.php文件內的方法處理後,轉到對應的php文件,並且找到對應的方法,執行之。
index.php代碼如下:
複製代碼
代碼如下:
?php
/**
*
入口文件
*/
$string
=
$_SERVER[“REQUEST_URI”];//
獲取訪問的url
$m
=
get_m($string);
$file_path
=
“app/”.$m.”.php”;
define(‘IS_INDEX’,true);//
阻止直接訪問app目錄
require
($file_path);
/**
*
*
獲取訪問php文件
*
@param
string
$url
*/
function
get_m($url){
$strings
=
explode(‘m=’,
$url);
$res
=
explode(“”,
$strings[1]);
return
empty($res[0])?’index’:$res[0];
}
?
data.php代碼如下:
複製代碼
代碼如下:
?php
/**
*
data文件
*/
$act
=
!empty($_GET[‘act’])
?
$_GET[‘act’]
:
”;
if
($act
==
‘getdata’)
{
$name
=
“我的名字叫:”.$_REQUEST[‘name’];
echo
$_REQUEST[“callback”].”(“.json_encode($name).”)”;
}
?
成功調用後,畫面就能獲取到返回的json數據了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/253879.html