作者darkk6 (Mr. Pan)
看板PHP
标题Re: [请益] PHP变数传入javascript
时间Tue May 7 10:53:02 2013
其实方法很多... 只是能不能融会贯通而已
第一个问题是
依照你的要求:
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)
1F:推 heeyahan:请问 那我该如何更改msg? 05/07 12:43
2F:→ heeyahan:我有试过让div id=$val 05/07 12:44
3F:→ heeyahan:然後在success那边 改写成$('#'+val).html(response) 05/07 12:46
4F:→ heeyahan:可是都没反应QQ 05/07 12:46
5F:→ MOONRAKER:chrome有js console,用那个摸索比每次改程式方便。 05/07 13:13