<? while ($rs = @mysql_fetch_array($re)){ ?>
$(document).ready(function(){
get_total<? echo $rs['buy_id'];?>();
});
function get_total<? echo $rs['buy_id'];?>(){
$("#data_total<? echo $rs['buy_id'];?>").load("get_total?id=<? echo $rs['buy_id'];?>");
}
$(document).ready(function(){
get_s_total<? echo $rs['buy_id'];?>();
});
function get_s_total<? echo $rs['buy_id'];?>(){
$("#data_s_total<? echo $rs['buy_id'];?>").load("get_s_total?id=<? echo $rs['buy_id'];?>");
}
$(document).ready(function(){
get_b_total<? echo $rs['buy_id'];?>();
});
function get_b_total<? echo $rs['buy_id'];?>(){
$("#data_b_total<? echo $rs['buy_id'];?>").load("get_b_total?id=<? echo $rs['buy_id'];?>");
}
<? }?>
這是我的某段程式
必須放在while迴圈中因為要獲取每筆的buy_id
該如何簡化他呢?
就不需要放在while迴圈裡面也能做到相同行為?
因為這樣等於每一筆資料都會有這一段jquery
拖慢整個速度
頁面(前端)的邏輯與資料(後端)的邏輯要拆開,你日後如果要使用樣板、使用framework,這些都是第一步。
永遠不要在查詢資料的迴圈中產生頁面資料,你應該把資料塞進陣列變數,然後在頁面邏輯的部份使用這個陣列變數。
你使用的javascript函數,不應該動態產生,有變動的部份,當做函數的參數就好了。
所以程式可以變成這樣:
<?php
$buy_id = array();
while ($rs = @mysql_fetch_array($re)){
$buy_id[] = $rs['buy_id'];
}
?>
<script>
var buy_id = [];
<?php foreach($buy_id as $v) { ?>
buy_id.push('<?=$v?>');
<?php } ?>
$(function() {
$.each(buy_id, function(idx, id) {
get_total(id);
get_s_total(id);
get_b_total(id);
})
});
function get_total(id) {
$('#data_total' + id).load('get_total?id=' + id);
}
function get_s_totla(id) {
$('#data_s_total' + id).load('get_s_total?id=' + id);
}
function get_b_total(id) {
$('#data_b_total' + id).load('get_b_total?id=' + id);
}
</script>
學到一招!長知識,感謝