js變量值傳到php(先把php解析成數據)

js變量值傳到php(先把php解析成數據)

1、總結

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

 

 

2、用ajax

1. 頁面提交數據: ajaxphp

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

 

參考代碼(jquery):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='$bid'";
//.......
?>
</SCRIPT>

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

 

解答:

不用AJAX,最簡單就是傳個參數過去
如:function saveGame(str){
window.location.href='url?str=' + str;
}

樓上的是一種跳轉的方式。若是你想不刷新處理,獲取數據。仍是用ajax 。很簡單的。給你個例子。這裏我我用jquery的$.post
$.post(URL,{參數1:alue,參數2:value2},function(data){
//這裏你能夠處理獲取的數據。我使用是json 格式。你也可使用其它格式。或者爲空,讓它本身判斷得了
},'json');

 

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

固然不行。

我不明白你爲何要用js來傳值。

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

用js來實現比較麻煩,由於你打開網頁是先執行php後執行js的。也就是說無論你js放在哪都是執行完了php再執行js。

若是你硬是要用js向php傳值這種方式的話那就要用到ajax,這要知道你的具體要求才行。sql

 

用AJAX 發送到後臺
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}
);
}apache

 

 

3、洞悉系統是先解析php,再執行其它代碼下的字符串拼接

 這樣能夠json

 1 <script>
 2 
 3     function dailyTask(){  4         $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) {  5             var dailyTaskDate=$(this).val();  6             var url1="{:url('task/getDailyTaskData')}";  7             var url2='?dailyTaskDate='+dailyTaskDate;  8             document.location=url1+url2;  9  }); 10  } 11  dailyTask(); 12 </script>

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

 

這樣不行,由於php鹹魚js執行,因此js中的dailyTaskDate變量會找不到,因此php中報常量錯誤。服務器

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

 

 

4、ajax回調函數中刷新頁面方法

在作demo的時候回調函數不想很麻煩,只是單純的刷新下頁面就能夠用location.reload(true); 這句話至關於F5鍵刷新頁面,這樣作的方法可能會耗費必定資源,可是刷新頁面仍是很方便的。函數

 

下面代碼能夠實現ajax刷新頁面,然而並無什麼用

 1 <script>
 2     function dailyTask(){  3         $('#my_daily_task_calendar').datepicker().on('changeDate.datepicker.amui', function(event) {  4             var dailyTaskDate=$(this).val();  5             $.post("task/getDailyTaskData", { dailyTaskDate:dailyTaskDate}, function () {  6  document.location.reload();  7  });  8  });  9  } 10  dailyTask(); 11 </script>
相關文章
相關標籤/搜索