評價: 2 回應: 3 閱覽: 2887
置頂

AJAX讀資料庫抓變數

我有許多問題想請問一下各位大大

1. 
正常來講應該是要用, PHP 讀資料庫撈資料後,在傳到 AJAX 處理 
還是說用 AJAX 讀資料庫撈資料後,就直接在 JavaScript 處理了呢? 

如果是後面..那 PHP還 要做啥呢..這樣不就都交給前端就好了呢?! 

2. 
AJAX 的 url 應該是放只有資料的網頁,還是說可以放原本 index.php 的網頁呢..?! 
AJAX 的 data 是資料嗎..? 我放了 PHP 的變數,可是讀得全部都是 HTML 所有程式碼,到底要怎麼取得變數或使用 PHP 的 function 呢...? 

3. 
現在我想要的是,讀資料庫撈資料後,由Jquery的mousedown事件,讓html的table表格的內容顯示資料,我應該怎麼做呢...? 

4. 
原本我是這樣,假設用 $abc 來存PHP讀資料庫撈的資料後,由AJAX取得PHP的變數,在用Jquery新增內容至Table,請問我這樣的想法對嗎...?! 


JS 檔大概內容: 

$.ajax({ 
url: 'index.php', 
data: {$jsonarray}, 
datatype: 'json', 
success: function(data){ 
console.log(data); 
} 
}); 

PHP 檔大概內容:

$data = new player($db); 
$player = $data->getData(); 
$playerdata = array( 
'p1' => array($player['rows'][0]['player_team'], $player['rows'][0]['player_name']), 
'p2' => array($player['rows'][1]['player_team'], $player['rows'][1]['player_name']), 
'p3' => array($player['rows'][2]['player_team'], $player['rows'][2]['player_name']) 
); 

$tempjson = json_encode($playerdata); 
$jsonarray = json_decode($tempjson); 
var_dump($jsonarray); 

 

熱門回應
accepted

Ajax是讓網頁能異步建立一個http連線的請求(request),至於要連線的網頁是要存取伺服器端資料或者只是一張圖片都可以,Ajax成功或失敗後要做什麼處理就看需求囉。最基本的應用方式就如你所寫的,透過Ajax連線將伺服器端資料取回,再顯示於目前的頁面上。

$("button").click(function(){
    $.ajax({url: "demo_test.php", success: function(data){
        $("#div1").html(data);
    }});
});

 

經常回去 jQuery API Documentation 看說明會有很幫助唷

 

AJAX叫做非同步資料交換 

他需由js開始去從前端對後端(php)

後端的php再去跟資料庫請求資料

(不一定是php,任何語言基本上只要能抓資料庫也能夠取得http請求都行) 

php取得資料後是使用「顯示」資料的方式產生資料型態的畫面

然後前端的js就會得到一個回應並取得資料

最後再從前端將資料重新處理到畫面上

url表示的是你要取得資料的php的位置 

這當中你沒有提到的東西叫做json 

我會希望你先去瞭解json這個格式

基本上他已經是一個網路交換資料的常用格式了

你可以去google "json"這個關鍵字,有很多詳細的說明 

最主要的是,你傳出去的post請求資料會是json的格式 

同樣的,在php端你也需要把資料轉成json字串格式然後傳回來 

這樣js才能夠直接做處理

如果不這樣做倒不是不能處理 ,只是事情會變得很麻煩 

一個簡單的ajax實現:(以你用jquery來說) 
前端: 

 

$.post(''get_data.php",{ 
'name':'bill', 
},function(data){ 
alert(data.name); 
},'json'); 

後端: 

檔名:get_data.php 

echo json_encode($_POST); 

這就是一個簡單的request和response 

你可以看alert()出來的是不是顯示bill 

如果你能理解這樣一進一出 

那抓資料再顯示對你來說應該就很簡單了 
 

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言