[英]Change variable in PHP script and run function again, without reloading page
有人可以告訴我是否需要AJAX來完成此處的操作嗎? 我有創建日歷的功能。 我將插入一些“前進”和“后退”箭頭鍵,以便用戶可以滾動瀏覽月份。
因此,單擊前進按鈕; 我想獲得下個月-並顯示該月份而不是當前月份。 這意味着重新加載功能,對嗎? 但是月份的變量不同。 另外,如果不使用某種JavaScript,我將無法再次顯示PHP本身,對嗎?
我知道我可以使用JavaScript制作相同的日歷,但是我想看看它如何使用PHP。 我之前也從未使用過AJAX功能,我不確定如何以這種方式更改腳本變量。
function create_Calendar($month,$year){
$i = "";
$days_array = array("Mon","Tue","Wed","Thur","Fri","Sat","Sun");
$days_in_month = cal_days_in_month(CAL_GREGORIAN,$month,$year);
$jd = cal_to_jd(CAL_GREGORIAN,$month,date("d"),$year);
$first_day = jddayofweek($jd,0);
$month_name = jdmonthname($jd,3) . " " . date("Y");
echo("<div id='calendar'>");
echo("<div id='month_name'>" . $month_name . "</div>");
for($i=0;$i<7;$i++){
echo("<div class='day_titles'>" . $days_array[$i] . "</div>");
}
for($i=0;$i<$first_day;$i++){
echo("<div class='blank_days'></div>");
}
for($i=1;$i<=$days_in_month;$i++){
echo("<div class='day'>" . $i . "</div>");
}
echo("<div class='day_tooltip'></div>");
echo("</div");
};
我用以下方法調用該函數:
create_Calendar(date("m"),2013);
任何幫助表示贊賞。
PHP是一種服務器端語言。 如果不刷新頁面,則無法執行與PHP相關的任務(不使用AJAX)。 Javascript,JQuery,AJAX都是客戶端。 您可以執行這些操作而無需刷新頁面,因為它們不需要轉到服務器即可執行操作。
因此,如果您不想刷新頁面,請使用javascript或jQuery之類的客戶端腳本。 如果您使用Google,可以找到好的日歷。
網頁中的數據進入服務器,然后服務器生成輸出,這意味着如果您繼續打開頁面,PHP將不會在服務器上運行。 因此,當您請求URL時,完整的PHP應用程序將從頭開始執行,直到請求的頁面結束。 這將繼續處理每個請求。
這是用於更好地了解流程的圖。
因此,每次您必須執行頁面。 是通過AJAX還是頁面刷新取決於您。
兩個簡單的ajax調用將為您完成這項工作。 當用戶單擊下一個或上一個按鈕時,使用$ .ajax進行呼叫並發送月份名稱作為參數。 預加載所有月份也可以完成您的工作,但是在這種情況下,腳本將占用更多資源。
更新:例如,您可以這樣調用:
<script type="text/javascript">
$(document).ready(function(){
$('#next').click(function(){
var month = 'July';
var year = '2011'; // or get them from the user's choice. I am hardcoding them here
var url = "http://domain/path/to/your/calander_function.php";
$.ajax({'url' : url ,
'type' : 'post',
'data' : {'month' : month , 'year' : year} ,
'success' : function(data){
// do something with your data
}
});
$('#previous').click(function(){
var month = 'June';
var year = '2013'; // or get them from the user's choice. I am hardcoding them here
var url = "http://domain/path/to/your/calander_function.php";
$.ajax({'url' : url ,
'type' : 'post',
'data' : {'month' : month , 'year' : year} ,
'success' : function(data){
// do something with your data
}
});
});
</script>
calander_function.php將包含將回顯結果的函數,您將獲得成功(在數據中)。 希望能幫助到你 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.