Re: [請益] PHP變數傳入javascript
其實方法很多... 只是能不能融會貫通而已
第一個問題是
依照你的要求:
1.按下三次 Click 傳回的數值不同
2.php 要在 body 後(內)
首先是綁定 click 的方式,如果不一定要用 script 的方式去綁定
而是寫在 DOM 裡面,倒是可以這樣做:
PS : 我不記得 w3c 有 <btn> 這個標籤... 建議寫網頁用 w3c 標準
看起來是要用按鈕,所以我把你的 <a><btn> 改成 <button>
另外提醒,你用 for + Like() 去建立 HTML tag
但要注意所謂 ID 就是唯一的 "編號",依你的例子來看,會產生
三個 id 都是 msg 的 tag , 這樣是不對的(不好的)
// 底下這是 php
function Like($val){
echo "<button onClick="btnClick($val)"> click~~ </button>";
echo "<br><br><br><div id=\"msg\"> </div>";
}
//底下是 js , 放在 <script> 裡面
function btnClick(value){
$.ajax({
url: 'like.php',
cache: false,
dataType: 'html',
type:'POST',
data: {value:value},
success: function(response) {
$('#msg').html(response);
$('#msg').fadein();
}
});
}
如果一定要利用 jQuery 去做 btn 的 Click 綁定,可以
透過 DOM 屬性來記錄:
// 底下這是 php , 不一定要用 ref , title 或者 alt 之類的屬性去存都 OK
function Like($val){
echo "<button ref="$val"> click~~ </button>";
echo "<br><br><br><div id=\"msg\"> </div>";
}
//底下是 js , 放在 <script> 裡面
$(document).ready(function(){
$("button").click(function(){
var val=$(this).attr("ref");
$.ajax({
url: 'like.php',
cache: false,
dataType: 'html',
type:'POST',
data: {value:val},
success: function(response) {
$('#msg').html(response);
$('#msg').fadein();
}
});
});
});
至於第二個問題.... 不是很清楚你的意思,每次要傳回的值不同
是根據甚麼? $val 嗎?
那麼這部分應該是在 like.php 處理吧,當然就是依據 $_POST['value']
去判斷要傳回甚麼東西啦
BTW : 要用一個頁面進行 ajax , 一個很簡單的例子
在 $.ajax 的 data 部分新增一個 check 用的變數(也可以直接用 value)
如:
data: { value:value , flag:1 }
在這個檔案的一開頭:
<?php
if(isset($_POST['flag']) && $_POST['flag']==1 ){
// 你要做的事情,包含 echo 一些資料讓 ajax 傳回
exit(0);
}
?>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.174.168
※ 編輯: darkk6 來自: 114.47.174.168 (05/07 10:58)
推
05/07 12:43, , 1F
05/07 12:43, 1F
→
05/07 12:44, , 2F
05/07 12:44, 2F
→
05/07 12:46, , 3F
05/07 12:46, 3F
→
05/07 12:46, , 4F
05/07 12:46, 4F
→
05/07 13:13, , 5F
05/07 13:13, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章