js變量值傳到php過(guò)程詳解 將php解析成數(shù)據(jù)
一、總結(jié)
一句話總結(jié):傳參數(shù)去后臺(tái),用ajax,或者原生js方式拼接url。明白原理,洞悉系統(tǒng)是先解析php,再執(zhí)行html代碼和js代碼。
二、用ajax
1. 頁(yè)面提交數(shù)據(jù): ajax
2. php頁(yè)面獲取參數(shù): $val = $_POST['val']
參考代碼(jquery):
$.ajax({ type: 'POST', url: 'save.php', data: {val: text1obj.value} success: function(msg){ // msg: php返回內(nèi)容 /* alert(修改成功); */ window.location = window.location; }, error:function(msg){ // 提交失敗 } });
問(wèn)題:
<SCRIPT LANGUAGE="JavaScript"> var bid=document.fenlei.bfenlei.value; <?php $sql1="select * from s_type where b_id='$bid'"; //....... ?> </SCRIPT>
如上代碼,如何把document來(lái)的bid值傳遞到下面PHP語(yǔ)句的bid????
解答:
不用AJAX,最簡(jiǎn)單就是傳個(gè)參數(shù)過(guò)去
如:
function saveGame(str){ window.location.href='url?str=' + str; }
樓上的是一種跳轉(zhuǎn)的方式。如果你想不刷新處理,獲取數(shù)據(jù)。還是用ajax 。很簡(jiǎn)單的。給你個(gè)例子。
這里我我用jquery的$.post
$.post(URL,{參數(shù)1:alue,參數(shù)2:value2},function(data){ //這里你可以處理獲取的數(shù)據(jù)。我使用是json 格式。你也可以使用其它格式?;蛘邽榭眨屗约号袛嗟昧? },'json');
一個(gè)是服務(wù)器端的,一個(gè)是客戶端的。
當(dāng)然不行。
我不明白你為什么要用js來(lái)傳值。
你直接用url參數(shù)像這樣: test.php?bid=1 不行嗎?
用js來(lái)實(shí)現(xiàn)比較麻煩,因?yàn)槟愦蜷_(kāi)網(wǎng)頁(yè)是先執(zhí)行php后執(zhí)行js的。也就是說(shuō)不管你js放在哪都是執(zhí)行完了php再執(zhí)行js。
如果你硬是要用js向php傳值這種方式的話那就要用到ajax,這要知道你的具體要求才行。
用AJAX 發(fā)送到后臺(tái)
proytype方法:
function changeshow() { var bid=document.fenlei.bfenlei.value; var url = 'adm_mod_ajax.php'; var pars = 'mtype=1&mid=' + mid+'&bid='+bid; var myAjax = new Ajax.Request( url, {method: 'post', parameters: pars, onComplete: showResponse} ); }
三、洞悉系統(tǒng)是先解析php,再執(zhí)行其它代碼下的字符串拼接
這樣可以
<script> function dailyTask(){ $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) { var dailyTaskDate=$(this).val(); var url1="{:url('task/getDailyTaskData')}"; var url2='?dailyTaskDate='+dailyTaskDate; document.location=url1+url2; }); } dailyTask(); </script>
apache服務(wù)器在頁(yè)面載入的時(shí)候會(huì)先翻譯 7 var url2='?dailyTaskDate='+dailyTaskDate; 這句話。把php翻譯完了就交給瀏覽器。
這樣不行,因?yàn)閜hp咸魚(yú)js執(zhí)行,所以js中的dailyTaskDate變量會(huì)找不到,所以php中報(bào)常量錯(cuò)誤。
var dailyTaskDate=$(this).val(); document.location={:url('task/getDailyTaskData',array('dailyTaskDate'=>dailyTaskDate))};
四、ajax回調(diào)函數(shù)中刷新頁(yè)面方法
在做demo的時(shí)候回調(diào)函數(shù)不想很麻煩,只是單純的刷新下頁(yè)面就可以用location.reload(true); 這句話相當(dāng)于F5鍵刷新頁(yè)面,這樣做的方法可能會(huì)耗費(fèi)一定資源,但是刷新頁(yè)面還是很方便的。
下面代碼可以實(shí)現(xiàn)ajax刷新頁(yè)面,然而并沒(méi)有什么用
<script> function dailyTask(){ $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) { var dailyTaskDate=$(this).val(); $.post("task/getDailyTaskData", { dailyTaskDate:dailyTaskDate}, function () { document.location.reload(); }); }); } dailyTask(); </script>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何實(shí)現(xiàn)chrome瀏覽器關(guān)閉頁(yè)面時(shí)彈出“確定要離開(kāi)此面嗎?”
這篇文章主要介紹了如何實(shí)現(xiàn)chrome瀏覽器關(guān)閉頁(yè)面時(shí)彈出“確定要離開(kāi)此面嗎?”的方法以及相關(guān)資料,需要的朋友可以參考下2015-03-03全面了解函數(shù)聲明與函數(shù)表達(dá)式、變量提升
下面小編就為大家?guī)?lái)一篇全面了解函數(shù)聲明與函數(shù)表達(dá)式、變量提升。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08ElementUI table無(wú)縫循環(huán)滾動(dòng)的示例代碼
這篇文章主要介紹了ElementUI table無(wú)縫循環(huán)滾動(dòng)的示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08點(diǎn)擊隱藏頁(yè)面左欄或右欄實(shí)現(xiàn)js代碼
通過(guò)點(diǎn)擊來(lái)隱藏頁(yè)面左欄或右欄,此效果在實(shí)際應(yīng)用中很常見(jiàn),接下來(lái)為大家詳細(xì)介紹下實(shí)現(xiàn)代碼,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04