當前位置:首頁 » 編程語言 » php判斷是否ajax

php判斷是否ajax

發布時間: 2022-12-26 02:36:39

Ⅰ thinkphp怎樣獲取ajax請求數據

一般將前台頁面搜索結果中,不喜歡的內容(鏈接),刪除掉,因為整個網站的編程框架式thinkphp,運用js中的ajax對頁面進行響應,調用後台php介面,實現前台和後台資料庫的同時更新.
首先我們需要做的就是在前台頁面中添加一個文本「刪除」,可以這么添加:
代碼如下:

<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >刪除</a>
上面的html代碼的意思:就是給刪除添加一個href,這個href是個js函數,類似於超鏈接的作用,當然對於我這樣的新手在剛開始的時候會有疑惑,我們平時的超鏈接不是這樣的,網頁中很多的javascript:void(0),那程序怎麼知道用戶點擊刪除後,會響應其真正對應的js函數呢?別急,這就是為什麼會為刪除添加id以及class這樣的標簽,相信我把js中的代碼公布出來以後你就會明白了,代碼如下:
jQuery(".list a.delete").click(function(){
if(confirm("你確定要刪除嗎?")){
var _this=this;
var id = jQuery(_this).attr("id");
jQuery.ajax({
url : '/Search/index.php/Jason/delete?',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = data.del;
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();
}else{//刪除失敗
alert("刪除失敗");
}
}
});
}
});

大家看函數的頭部:jQuery(".list a.delete").click(),jQuery後面的標簽是很重要的,這就保證了jquery很准確的響應頁面中用戶點擊的「位置」,添加的事件為click(),在click里添加響應事件的代碼:var id = jQuery(_this).attr("id");獲取a對應的id,因為這個id是我們刪除資料庫時用到的鏈接id,當然這種直接明文的方式不好,在這里只是介紹整個響應過程。調用ajax,實現非同步的運行整個過程。我們設置了js接受的是json串,這里的方式應該有很多種吧,我沒有去嘗試,大家要是有興趣可以自行嘗試一下。/Search/index.php/Jason/delete?這句話就是js去請求php的介面,php介面對用的代碼如下:
注意ajax在求php介面時的路徑,也就是delete函數必須放在JasonAction.class.php中,此例子是必須這樣的:
代碼如下:

public function delete(){
if($this->isGet()){
$userId = session("uid");//用戶登錄
if(!empty($userId)){
$a = M('***');
$id = $this->_get('id');
$result=$a->where("id=$id")->delete();//刪除
if($result > 0){
$arr = array("del"=>'1');
}else{
$arr = array("del"=>'0');
}
$json_str = json_encode($arr);
echo $json_str;//返回給js
}
}
}

相信大家對上面的代碼不會陌生吧,整個過程都是thinkphp框架內部配置完畢的.
var del = data.del;這句是接受php代碼返回來的json串中del這個key的value,進而在前台進行頁面更新和響應.

復制代碼代碼如下:
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();//這句話就是後台刪除成功後,直接在前台對響應的div進行刪除,這樣性能就會很快,無需進行後台數據的重新提取至前台頁面中,
}else{//刪除失敗
alert("刪除失敗");
}
整個響應的過程就是這樣,至於效果優化,是優化和細化方面的問題,後來,身邊的同事又告訴我前台移除響應鏈接的另一個動態效果:
即將:
代碼如下:
jQuery("#"+id).parents(".list").remove();
替換為:
代碼如下:

jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});

Ⅱ ajax與PHP

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

Ⅲ php ajax題目(對我來說很難),求大神

<?php
if(isset($_GET['ucode'])){
session_start();
if($_GET['ucode']==$_SESSION['code']){
exit('OK');
}else{
exit('NO');
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>
<body>
<input type="text" id="ucode" oninput="check()"/>
<img id="code" src="code.php" onclick="this.src='code.php?v='+Math.random()"/>
<img id="f" src="error.png"/>
<script>
function check(){
var ucode=document.getElementById('ucode').value;
if(ucode){
var f=document.getElementById('f');
var xmlhttp=new window.XMLHttpRequest();
xmlhttp.open('GET','usecode.php?ucode='+ucode,true);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
if(xmlhttp.responseText=='OK'){
f.src='right.png';
}else{
f.src='error.png';
}
}
}
}
}
</script>
</body>
</html>

Ⅳ php的ajax問題。非同步發送到伺服器的log.php頁面,請問log.php裡面還有其他與aja

樓主,你好,你的意思是,log.php這個頁面上代碼有很多,但你通過ajax只希望執行其中的一部分吧,那就很好辦了,直接ajax請求的時候GET傳一個action=li8的值,然後只需要在log.php的頁面判斷一下, 如果接收到GET["action"]=="li8"的話,就執行對ajax請求過來的代碼,反則就是其他代碼的執行,與ajax處理的代碼就用if區分開了!

Ⅳ thinkphp 驗證是不是ajax提交

有兩種方式,如下:

第一種方式
PHP判斷ajax請求的原理:
在發送ajax請求的時候,我們可以通過XMLHttpRequest這個對象,創建自定義的header頭信息, 在jquery框架中,對於通過它的$.ajax, $.get, or $.post方法請求網頁內容時,它會向伺服器傳遞一個HTTP_X_REQUESTED_WITH的參數,php中就是在header一層判斷是否是ajax請求,對應的根據$_SERVER['HTTP_X_REQUESTED_WITH']判斷。
/**
* 當前請求是否ajax請求
*
* @access public
* @return bool
*/
function isAjax()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']);
}


注意:
● 一般情況下$_SERVER['HTTP_X_REQUESTED_WITH']默認是XMLHttpRequest
● $_SERVER['HTTP_X_REQUESTED_WITH']也可以自定義創建的,使用XMLHttpRequest.setRequestHeader(name,value);參考文章:http://www.skygq.com/2011/01/04/php-check-request-from-ajax-or-normal/

第二種方式
通過前台給php傳一個type參數來判斷,type=1則是ajax,否則是普通提交。

Ⅵ ajax 怎麼判斷 php傳輸過來值

if ($_REQUEST['act'] == 'c**ignee_list')
{
/*
* 檢查用戶是否選擇匿名購物
*/
if (isset($_REQUEST['direct_shopping']))
{
$_SESSION['direct_shopping'] = 1;
}

/*
* 檢查用戶是否已經登錄
* 如果用戶已經登錄了則檢查是否有默認的收貨地址
* 如果沒有登錄則跳轉到登錄和注冊頁面
*/
if (empty($_SESSION['direct_shopping']) && $_SESSION['user_id'] == 0)
{
/* 用戶沒有登錄且沒有選定匿名購物,轉向到登錄頁面 */
$result['error'] = 1;
$result['message'] = '對不起,您沒有登錄或者您未選擇匿名購物!';
echo $json->encode($result);
exit;
}
}
echo $json->encode($result);
$('#addr_modify').click(function(){

$.ajax({
type: "POST",
url: "flow_ajax.php?act=c**ignee_list",
cache: false,
data: "&m=" + Math.random(),
beforeSend:function(){$('#addr_modify').html('[獲取中...]')},
success:function(data){
re = $.evalJSON(data);
alert(re.message);
if(re.error == 1)
{
alert(re.message);
window.location.href="flow.php?step=cart" + "&m=" + Math.random();
return;
}
else if(re.error == 2)
{
alert(re.message);
window.location.href="flow.php?step=c**ignee";
return;
}

$('#addr_modify').hide();
$('#addr_okbox').hide();
$('#addr_editbox').show();
// $('#addr_editbox').html(re.content_list);
// $('#addr_edit_table').html(re.content_table);
}
})
});
flow_ajax.php

define('IN_ECS', true);

require(dirname(__FILE__) . '/includes/init.php');

require(ROOT_PATH . 'includes/cls_json.php');

if (!isset($_REQUEST['act']))

{

/* 只有在沒有提交評論內容以及沒有act的情況下才跳轉 */

ecs_header("Location: flow.php\n");

exit;

}

$json = new JSON;

$result = array('error' => 0, 'message' => '', 'content' => '');

$result['message'] = '已接受請繼續';

echo $json->encode($result);

Ⅶ php ajax驗證用戶名是否存在

$("button").click(function(){
$.get("ajax_login.php",{username:'testname'},function(result){
if(result){//判斷已經存在
alert('用戶名已經存在');
}else{
alert('可以注冊');
}
});
});


給你一個js端,可以結合樓上勰莫莫的服務端一起用

Ⅷ 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')).

Ⅸ PHP如何判斷是否為AJAX請求

  • <spanstyle="font-size:18px;">/**

  • *是否AJAX請求

  • *@accessprotected

  • *@returnbool

  • */

  • protectedfunctionisAjax(){

  • if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])){

  • if('xmlhttprequest'==strtolower($_SERVER['HTTP_X_REQUESTED_WITH']))

  • returntrue;

  • }

  • if(!empty($_POST[C('VAR_AJAX_SUBMIT')])||!empty($_GET[C('VAR_AJAX_SUBMIT')]))

  • //判斷Ajax方式提交

  • returntrue;

  • returnfalse;

  • }</span>

熱點內容
xpftp外網 發布:2025-05-17 23:58:11 瀏覽:384
如何評價一個伺服器的性能 發布:2025-05-17 23:40:53 瀏覽:270
淘寶客適合什麼伺服器 發布:2025-05-17 23:39:26 瀏覽:612
python循環文件 發布:2025-05-17 23:39:22 瀏覽:828
androidstudio更新 發布:2025-05-17 23:38:22 瀏覽:643
java項目面試 發布:2025-05-17 23:30:53 瀏覽:780
若主存儲器按位元組編址 發布:2025-05-17 23:30:46 瀏覽:24
kotlinandroid 發布:2025-05-17 23:19:09 瀏覽:974
雲編程英語 發布:2025-05-17 23:18:34 瀏覽:623
androidstudio導入類 發布:2025-05-17 23:15:36 瀏覽:237