本文目錄一覽:
thinkphp中怎麼用ajax?
第一.tp中ajax的url需要使用大U方法.比如:$.post(“{:U(‘User/add’)}”)
第二.控制器中返回結果得第一種方法.$this-error(‘失敗’,”,true); 第三個參數為true.則發揮的是json數據.包含info.status.url三項.
第三.控制器中返回結果的第二種方法.$this-ajaxReturn(array(‘customKey1’=’customValue1′,’customKey2’=’customValue2′,’customKey3’=’customValue3’)).
簡介:
國內翻譯常為「阿賈克斯」和阿賈克斯足球隊同音。Web應用的交互如Flickr,Backpack和Google在這方面已經有質的飛躍。這個術語源自描述從基於Web的應用到基於數據的應用的轉換。在基於數據的應用中,用戶需求的數據如聯繫人列表,可以從獨立於實際網頁的服務端取得並且可以被動態地寫入網頁中,給緩慢的Web應用體驗着色使之像桌面應用一樣。
開發模式:
許多重要的技術和AJAX開發模式可以從現有的知識中獲取。例如,在一個發送請求到服務端的應用中,必須包含請求順序、優先級、超時響應、錯誤處理及回調,其中許多元素已經在Web服務中包含了,就像現在的SOA。AJAX開發人員擁有一個完整的系統架構知識。同時,隨着技術的成熟還會有許多地方需要改進,特別是UI部分的易用性。
AJAX開發與傳統的CS開發有很大的不同。這些不同引入了新的編程問題,最大的問題在於易用性。由於AJAX依賴瀏覽器的JavaScript和XML,瀏覽器的兼容性和支持的標準也變得和JavaScript的運行時性能一樣重要了。這些問題中的大部分來源於瀏覽器、服務器和技術的組合,因此必須理解如何才能最好的使用這些技術。
綜合各種變化的技術和強耦合的客戶服務端環境,AJAX提出了一種新的開發方式。AJAX開發人員必須理解傳統的MVC架構,這限制了應用層次之間的邊界。同時,開發人員還需要考慮CS環境的外部和使用AJAX技術來重定型MVC邊界。最重要的是,AJAX開發人員必須禁止以頁面集合的方式來考慮Web應用而需要將其認為是單個頁面。一旦UI設計與服務架構之間的範圍被嚴格區分開來後,開發人員就需要更新和變化的技術集合了。
jquery ajax php 調用方法!
可以在jquery的ajax方法成功執行之後,執行相應的js代碼
例如:index.html 頁面
script language=”javascript”
var id = 10;
$.ajax({
url:’ajax.php?action=ok’,
type:’post’,
data:’id=’+id,
async : false,
success: function(data){
//可以在這裡執行相應的js代碼
$(“#user_id”).val(data);
}
});
/script
input type=”text” name=”user” id=”user_id” value=””
input type=”button” value=”點擊” onclick=”check();”
ajax.php 處理頁面
?php
if($_GET[‘action’] == ‘ok’){
$id = $_POST[‘id’];
echo $id;
}
?
ajax怎麼訪問php中的方法
ajax異步傳輸,個人理解ajax和表單沒有什麼區別,只是表單刷新整個頁面,ajax 在不刷新頁面的情況下傳送數據到後台並接收後台處理的結果,用post或get方法給php文件或主入口文件對應的方法傳值,在對應的php文件有$_POST或$_GET 接受,就可以了
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)
{
//…..驗證存在否,輸出
}
?
ajax怎麼讀取後台php數據
其實就是發送一個網絡請求,服務端輸出的內容就是響應的內容,如jQuery
$.ajax(
{
url: ”, // 請求URL
data: ”, // 請求時攜帶的參數
type: ”, // 請求方式, GET/POST
dataType: ”,// 響應數據格式, text/json
success: r = {
// 請求成功時回調函數,參數 r 為服務端響應的內容
console.log(r); // 就是你說的後台數據
},
error: () = {
console.error(‘fail’); // 請求失敗
}
}
)
// 服務端響應內容
$data = []; // 從數據庫中獲取的數據
echo json_encode($data); // 響應客戶端, 數據格式為 JSON
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/194842.html