本文目錄一覽:
thinkphp中怎麼用ajax
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’)).
掌握以上三點和ajax基本使用方法.那麼在tp中使用ajax也就掌握了.簡單的例子如下.偽代碼,或許有錯.
模板中:
script
$.post(“{:U(‘User/add’)”,{uname:xiaoming,age:15},function(data){
//data接收返回數據
if(data.status == 1){
alert(data.info);
location.href = data.url;
}else{
alert(‘錯誤’);
}
});
/script
控制器中:
public function add(){
if(IS_AJAX){
$name = I(‘post.name’,”,’trim’);
$age = I(‘post.age’,”,’trim’);
if($name $age){
//插入數據
$this-success(‘添加成功’,U(‘User/index’),true);
}else{
$this-ajaxReturn(array(
‘status’ = 0,
‘info’ = ‘大爺,您沒輸入名字’,
‘url’ = U(‘User/add’)
));
}
}else{
return false;
}
}
大概就是這樣子.至於剩下的$.ajax.$.getJson等等都是一樣的道理
AJAX 向PHP傳遞參數
能啊!給你個例子啊!
html
head
script type=”text/javascript”
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// all modern browsers
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// for IE5, IE6
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open(“GET”,url,true);
xmlhttp.send(null);
}
else
{
alert(“Your browser does not support XMLHTTP.”);
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = “loaded”
if (xmlhttp.status==200)
{// 200 = “OK”
document.getElementById(‘p1’).innerHTML=”This file was last modified on: ” + xmlhttp.getResponseHeader(‘Last-Modified’);
}
else
{
alert(“Problem retrieving data:” + xmlhttp.statusText);
}
}
}
/script
/head
body
p id=”p1″
The getResponseHeader() function returns a header from a resource.
Headers contain file information like length,
server-type, content-type, date-modified, etc./p
button onclick=”loadXMLDoc(‘/example/ajax/test_xmlhttp.txt’)”Get “Last-Modified”/button
/body
/html
如何在同一個PHP頁面,通過ajax把值傳給PHP變量?
舉個例子:你想在用戶點擊時,把 apple 這個字符串,通過前端傳給後端。
前端,用 jQuery 舉例:
$(‘button’).click(function () {
$.ajax({
url: ‘/xxx’,
method: ‘post’,
dataType: ‘json’,
data: {fruit: ‘apple’}
}).done(function (res) {
// 成功後的回調
}).fail(function (err) {
// 失敗後的回調
});
});
後端 PHP 處理:
$fruit = $_POST[‘fruit’]; // 獲取從 ajax 傳過來的 fruit 的值,這裡是 apple。
如果你想在前端重新顯示這個字符串 apple,那麼你要用 PHP 把數據返回給頁面,然後在上面 「// 成功後的回調」 裏面,補充邏輯代碼。
例如 PHP 把 apple 返回給前端:
return json_encode(array(‘fruit’ = ‘apple’));
前端回調處理:
// 成功後的回調
alert(res.fruit); // 彈框顯示 「apple」
實際上,$_POST 能夠獲取所有從前端用 post 方式提交過來的數據,不管你是頁面刷新方式,還是 ajax(jQuery 才叫 ajax,實際上它是 XMLHttpRequest,異步非阻塞的請求方式)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/243943.html