首頁 >web前端 >js教程 >如何把js變數值傳到php

如何把js變數值傳到php

不言
不言原創
2018-07-14 11:39:0718629瀏覽

這篇文章主要介紹瞭如何把js變數值傳到php,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

一、總結

#一句話總結:傳送參數去後台,用ajax,或是原生js方式拼接url。明白原理,洞悉系統是先解析php,再執行html程式碼和js程式碼。

二、用ajax

1. 頁面提交資料: ajax

2. php頁面取得參數: $val =   $_POST['val']

參考程式碼(jquery):

$.ajax({
type: 'POST',
url: 'save.php',
data: {val: text1obj.value}
success: function(msg){// msg: php返回内容/* alert(修改成功); */window.location = window.location;
},
error:function(msg){// 提交失败}
});

問題:

<SCRIPT LANGUAGE="JavaScript">
var bid=document.fenlei.bfenlei.value;
<?php
$sql1="select * from s_type where b_id=&#39;$bid&#39;";
//.......
?>
</SCRIPT>


#如上程式碼,如何把document來的bid值傳遞到下面PHP語句的bid? ? ? ?

解答:

不用AJAX,最简单就是传个参数过去
如:function saveGame(str){
    window.location.href=&#39;url?str=&#39; + str;
}

楼上的是一种跳转的方式。如果你想不刷新处理,获取数据。还是用ajax 。很简单的。给你个例子。这里我我用jquery的$.post
  $.post(URL,{参数1:alue,参数2:value2},function(data){
       //这里你可以处理获取的数据。我使用是json 格式。你也可以使用其它格式。或者为空,让它自己判断得了
},&#39;json&#39;);

一個是伺服器端的,一個是客戶端的。

當然不行。

我不懂你為什麼要用js來傳值。

你直接用url參數像這樣: test.php?bid=1 不可以嗎?

用js來實現比較麻煩,因為你打開網頁是先執行php後執行js的。也就是說不管你js放在哪裡都是執行完了php再執行js。

如果你硬是要用js傳值給php這個方式的話那就要用到ajax,這要知道你的特定要求才行。

用AJAX 傳送到後台
proytype方法:

function changeshow()
{
var bid=document.fenlei.bfenlei.value;
var url = &#39;adm_mod_ajax.php&#39;;
var pars = &#39;mtype=1&mid=&#39; + mid+&#39;&bid=&#39;+bid;
var myAjax = new Ajax.Request(
url,
{method: &#39;post&#39;, parameters: pars, onComplete: showResponse}
);
}

三、洞悉系統是先解析php,再執行其它程式碼下的字串拼接

 這樣可以

<script>
    function dailyTask(){
        $(&#39;#my_daily_task_calendar&#39;).datepicker().on(&#39;changeDate.datepicker.amui&#39;, function(event) {
            var dailyTaskDate=$(this).val();
            var url1="{:url(&#39;task/getDailyTaskData&#39;)}";
            var url2=&#39;?dailyTaskDate=&#39;+dailyTaskDate;
            document.location=url1+url2;
        });
    }
    dailyTask();
</script>

apache伺服器在頁面載入的時候會先翻譯 7 var url2='?dailyTaskDate=' dailyTaskDate; 這句話。把php翻譯完了就交給瀏覽器。

 這樣不行,因為php鹹魚js執行,所以js中的dailyTaskDate變數會找不到,所以php中報常數錯誤。

var dailyTaskDate=$(this).val();
document.location={:url(&#39;task/getDailyTaskData&#39;,array(&#39;dailyTaskDate&#39;=>dailyTaskDate))};

四、ajax回呼函數中刷新頁面方法

#在做demo的時候回呼函數不想很麻煩,只是單純的刷新下頁面就可以用location.reload(true); 這句話相當於F5鍵刷新頁面,這樣做的方法可能會耗費一定資源,但是刷新頁面還是很方便的。

下面程式碼可以實現ajax刷新頁面,然而並沒有什麼用

<script>
    function dailyTask(){
        $(&#39;#my_daily_task_calendar&#39;).datepicker().on(&#39;changeDate.datepicker.amui&#39;, function(event) {
            var dailyTaskDate=$(this).val();
            $.post("task/getDailyTaskData", { dailyTaskDate:dailyTaskDate}, function () {
                document.location.reload();
            });
        });
    }
    dailyTask();
</script>

 

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關建議:

 js呼叫php和php呼叫js的方法小結

 對node.js的偵錯方法的簡單分析

以上是如何把js變數值傳到php的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn