當前位置:首頁 » 編程語言 » phpajax類

phpajax類

發布時間: 2022-12-22 13:52:39

php +ajax代碼詳解 大神!

你是在瀏覽器中同時打開1.php和2.php嗎?
怎麼會有兩個表單,在不同的頁面上?
然後,你那個0.js文件是拿來做什麼的?

㈡ PHP中ajax的局部刷新

我只說jquery的吧。
你的表單中添加分類和提交標題name和ID重復。

代碼如下 left by createindex
---------------------------華麗的分割線-----------------------------------
<form action="" method="post">
分類列表:<select name="select" id="select"></select>
分類名稱:<input type="text" name="fenlei" id="fenlei" />
<input type="submit" id="button_add" value="添加分類">

標題:<input type="text" name="biaoti" id="biaoti" />
<input type="submit" id="button_title" value="提交標題" />
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
$(function(){
//添加分類綁定單擊事件
$("#button_add").click(function(){

var fenlei = $("#fenlei").val();//取得表單的值

//Ajax post數據
$.ajax({
type: "POST",//Ajax請求為post
url: "some.php",//ajax請求URL 腳本地址
data: "fenlei="+fenlei, //傳遞的值
success: function(data){ //回調函數 這里的data你可以返回HTML也可以是JSON 為了簡單你返回HTML就可以了。
$("#select").html("").html(data);//將返回的列表插入分類.
//你只需要在後台腳本返回 <option value="xx">sdfsdf</option>之類的可以了。
}
});
});
});
</script>
---------------------------華麗的分割線-----------------------------------

<input type="submit" id="button_add" value="添加分類">
修改為

<input type="button" id="button_add" value="添加分類">
---------------------------華麗的分割線-----------------------------------
不知道你什麼意思。 Jquery的選擇器選擇你要的DOM節點操作就可以了。怎麼控制那是你自己怎麼做的問題。像這種問題自己看文檔就能寫出來的。

㈢ ajax與PHP

所謂的非同步,就是一部分內容先提交,然後有內容來處理從伺服器放回的數據,而整體頁面不進行更改,js處理頁面的數據,而php處理後台的數據處理,兩者相互結合,形成了Ajax,當然,後台處理程序俺,可以使用任何後台處理,比如jsp,asp,aspx,php等

㈣ PHP,ajax

對於JQUERY的資料,這個不好怎麼說,去書城逛逛,覺得對於你有幫組就哪個吧,適合自己的才是最好的。

JSON_encode只是對字元串經行編碼,跟到接受頁面能否解析出這個字元串沒有關系。HTML也是字元串組成的,這樣理解就好。

2,
用點,比如這個返回的是一個JESON數組:

㈤ 求教php中Ajax請求

obj_ipin.ajaxurl

在obj_ipin這個對象里,查找一下obj_ipin

㈥ PHP 如何用ajax做文件上傳

通過傳統的form表單提交的方式上傳文件:
[html] view plain 在CODE上查看代碼片派生到我的代碼片<form id= "uploadForm" action= "http://localhost:8080/cfJAX_RS/rest/file/upload" method= "post" enctype ="multipart/form-data">
<h1 >測試通過Rest介面上傳文件 </h1>
<p >指定文件名: <input type ="text" name="filename" /></p>
<p >上傳文件: <input type ="file" name="file" /></p>
<p >關鍵字1: <input type ="text" name="keyword" /></p>
<p >關鍵字2: <input type ="text" name="keyword" /></p>
<p >關鍵字3: <input type ="text" name="keyword" /></p>
<input type ="submit" value="上傳"/>
</form>
不過傳統的form表單提交會導致頁面刷新,但是在有些情況下,我們不希望頁面被刷新,這種時候我們都是使用Ajax的方式進行請求的。
Ajax的方式進行請求:
[javascript] view plain 在CODE上查看代碼片派生到我的代碼片$.ajax({
url : "http://localhost:8080/STS/rest/user",type : "POST",
data : $( '#postForm').serialize(),
success : function(data) {
$( '#serverResponse').html(data);
},
error : function(data) {
$( '#serverResponse').html(data.status + " : " + data.statusText + " : " + data.responseText);}
});
通常我們提交(使用submit button)時,會把form中的所有表格元素的name與value組成一個queryString,提交到後台。這用jQuery的方法來說,就是serialize。
通過$('#postForm').serialize()可以對form表單進行序列化,從而將form表單中的所有參數傳遞到服務端。
但是上述方式,只能傳遞一般的參數,上傳文件的文件流是無法被序列化並傳遞的。
不過如今主流瀏覽器都開始支持一個叫做FormData的對象,有了這個FormData,我們就可以輕松地使用Ajax方式進行文件上傳了。
關於FormData及其用法
FormData是什麼呢?我們來看看Mozilla上的介紹。
XMLHttpRequest Level 2添加了一個新的介面FormData.利用FormData對象,我們可以通過JavaScript用一些鍵值對來模擬一系列表單控制項,我們還可以使用XMLHttpRequest的send()方法來非同步的提交這個"表單".比起普通的ajax,使用FormData的最大優點就是我們可以非同步上傳一個二進制文件.
所有主流瀏覽器的較新版本都已經支持這個對象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。
參見:https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/FormDataConstructor
FormData()
想得到一個FormData對象:
var formdata = new FormData();
W3c草案提供了三種方案來獲取或修改FormData。
方案1:創建一個空的FormData對象,然後再用append方法逐個添加鍵值對:
var formdata = new FormData();
formdata.append("name", "呵呵");
formdata.append("url", "http://www..com/");方案2:取得form元素對象,將它作為參數傳入FormData對象中!
var formobj = document.getElementById("form");var formdata = new FormData(formobj);
方案3:利用form元素對象的getFormData方法生成它!
var formobj = document.getElementById("form");var formdata = formobj.getFormData()
Method
FormData.append
本方法用於向已存在的鍵添加新的值,如該鍵不存在,新建之。
語法
formData.append(name, value);
formData.append(name, value, filename);
注: 通過 FormData.append()方法賦給欄位的值若是數字會被自動轉換為字元(欄位的值可以是一個Blob對象,一個File對象,或者一個字元串,剩下其他類型的值都會被自動轉換成字元串).
參數解釋
name
鍵 (key), 對應表單域
value
表單域的值
filename (optional)
The filename reported to the server (a USVString), when a Blob or File is passed as the second parameter. The default filename for Blob objects is "blob".
FormData.delete
將一對鍵和值從 FormData 對象中刪除。
formData.delete(username);
FormData.get
返回給定鍵的第一個值
formData.append('username', 'Justin');
formData.append('username', 'Chris');
formData.get(username); // "Justin"
FormData.getAll
返回給定鍵的所有值
formData.append('username', 'Justin');
formData.append('username', 'Chris');
formData.getAll(username); // ["Justin", "Chris"]
FormData.has
檢查是否包含給定鍵,返回 true 或 false
formData.has(username);
FormData.set
設置給定鍵的值
formData.set(name, value);
formData.set(name, value, filename);
瀏覽器兼容情況
來自 MDN:
Desktop
FeatureChromeFirfox(Gecko)Intenet ExplorerOperaSafariBasic support7+4.0(2.0)10+12+5+
append with filename(Yes)22.0(22.0)???
delete, get, getAll, has, setBehind FlagNot supportedNot supported(Yes)Not supportedMobile
FeatureAndroidChrome AndroidFirfox Mobile (Gecko)Firfox OS (Gecko)IE MobileOpera MobileSafari MobileBasic support3.0?4.0(2.0)1.0.1?12+?
append with filename??22.0(22.0)1.2???
delete, get, getAll, has, set(Yes)(Yes)Not supportedNot supportedNot supported(Yes)Not supported2015年06月04日發布
Ajax通過FormData上傳文件
1.使用<form>表單初始化FormData對象方式上傳文件HTML代碼
<form id="uploadForm" enctype="multipart/form-data">
<input id="file" type="file" name="file"/>
<button id="upload" type="button">upload</button>
</form>
javascript代碼
$.ajax({
url: '/upload',
type: 'POST',
cache: false,
data: new FormData($('#uploadForm')[0]),
processData: false,
contentType: false
}).done(function(res) {
}).fail(function(res) {});
這里要注意幾點:
processData設置為false。因為data值是FormData對象,不需要對數據做處理。
<form>標簽添加enctype="multipart/form-data"屬性。
cache設置為false,上傳文件不需要緩存
contentType設置為false,不設置contentType值,因為是由<form>表單構造的FormData對象,且已經聲明了屬性enctype="multipart/form-data",所以這里設置為false。
上傳後,伺服器端代碼需要使用從查詢參數名為file獲取文件輸入流對象,因為<input>中聲明的是name="file"。
如果不是用<form>表單構造FormData對象又該怎麼做呢?
2.使用FormData對象添加欄位方式上傳文件
HTML代碼
<div id="uploadForm">
<input id="file" type="file"/>
<button id="upload" type="button">upload</button>
</div>
這里沒有<form>標簽,也沒有enctype="multipart/form-data"屬性。
javascript代碼
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);$.ajax({
url: '/upload',
type: 'POST',
cache: false,
data: formData,
processData: false,
contentType: false
}).done(function(res) {
}).fail(function(res) {});
這里有幾處不一樣:
append()的第二個參數應是文件對象,即$('#file')[0].files[0]。
contentType也要設置為『false』。
從代碼$('#file')[0].files[0]中可以看到一個<input type="file">標簽能夠上傳多個文件,只需要在<input type="file">里添加multiple或multiple="multiple"屬性。
3.伺服器端讀文件
從Servlet 3.0 開始,可以通過 request.getPart() 或 request.getPars() 兩個介面獲取上傳的文件。

㈦ php+Ajax 問題!

給個參數進去
operate.php?action={增,刪,改,查}
然後通過operate接收action的值再判斷
select case _GET[$action]
case 增
.....
end select
然後再作相關的動作就行了

㈧ 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>

控制器中:

publicfunctionadd(){
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{
returnfalse;
}
}

大概就是這樣子.至於剩下的$.ajax.$.getJson等等都是一樣的道理

㈨ PHP AJAX

PHP裡面有輸出嗎,輸出才可以的

㈩ 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)
{
//.....驗證存在否,輸出
}
?>

熱點內容
百錢白雞c語言 發布:2024-04-30 03:52:57 瀏覽:297
阿里雲伺服器外包 發布:2024-04-30 03:33:54 瀏覽:277
911標配的有哪些配置 發布:2024-04-30 03:18:38 瀏覽:159
如何訪問阿里雲伺服器多個數據盤 發布:2024-04-30 03:08:45 瀏覽:187
ldd3源碼 發布:2024-04-30 03:07:14 瀏覽:7
phpecho換行 發布:2024-04-30 02:21:51 瀏覽:904
高中ftp 發布:2024-04-30 01:51:48 瀏覽:873
林秋楠手機的密碼是多少 發布:2024-04-30 01:46:31 瀏覽:276
python靜態類方法 發布:2024-04-30 01:30:28 瀏覽:462
zblogphpasp 發布:2024-04-30 01:27:35 瀏覽:137