http://jingyan.baidu.com/article/0aa22375b722ba88cd0d6446.html
這個問題在網頁開發時經常遇到,其實解決辦法非常簡單,就是幾行代碼的事,不過各種js、php書上都沒有,百度下來也亂七八糟的,有的能用,有的不能用。小編遇到這問題時認認真真研究了一上午,研究出一點心得,希望可以幫到你!
方法/步驟
-
第一種情況:
兩個不在同一頁面(js一個頁面,php在另一個頁面)
第一種方法:
通過url傳參。js傳過去,php接收,或者php傳過去,js接收。
這里展示一下js傳過去,php接收的情況。
我用的jquery,寫的方便。js的DOM操作麻煩。
-
js通過url傳過去,最重要的是更改url。
代碼:$(form的id).attr("action",新的url地址);
這個是更改form的action的url來達到傳參的目的。
當然表格完成之后一般都會跳轉,將數據傳到跳轉后的回執頁面,在那里進行數據庫操作。
貼一下我的代碼,以這個為樣例來詳細介紹。如圖
-
再說一下php接收過程,這個很簡單的。用到的命令是:
$ss=$_POST["url中的參數名"];
非常簡單,php會自動識別url並分析出參數值。但需要注意的是:form表格的method屬性要是post,否則php就不能用POST方法接收。
url傳參,參數格式要寫對,圖有樣例。
發張接收圖。
-
在這里詳細說明一下php的POST[ ] 方法的用法及原理。
POST[" "] <----------- 括號中的值是你method方法為post的表單的各項元素的name。
例如
<form method='post'>
<input name='123' />
</form>
那么你的php接收時就要這樣寫:
$ss=$_POST["123"];
名字一定要對上,否則post方法不管用。
-
第二種方法:
php向js傳遞參數。
這個其實和上面的一樣,只是變成了php更改url,js接收參數。
多用在查詢數據時。只是有一點非常坑,那就是js接收參數好像需要自己字符串加工,我還沒有找到好辦法。發一下我寫的接收兩個參數的js函數。
代碼如下:
-
代碼:
function Ana() //(函數名:分析的英文縮寫)
{
var url = $(window.parent.document).find("#rl").attr("src");
var pq=typeof(url);
if ( pq == "undefined" ) {
var c=date();
return c; }
else
{
var p=url.indexOf("?");
if (p!=-1)
{
var i=url.indexOf("=");
i=i+1;
var j=url.indexOf("&");
var c1,c2;
c1="";
c2="";
for (var k=i;k<j;k++)
{c1 +=url[k];}
var s=url;
url="";
for (k=j;k<s.length;k++)
{url +=s[k];}
i=url.indexOf("=");
i=i+1;
j=url.length;
for (var k=i;k<j;k++)
{c2 +=url[k];}
var c=new Array(c1,c2);
return c;
}
else
{
var c=date();
return c; //返回數組。
}
-
第二種情況:
php與js在同一頁面,php要傳遞給js變量。
簡介中說了,這東西很簡單,就是幾行代碼的事,就是不好找。
所以廢話不多說,貼代碼:
代碼都能看清,就一行,就不寫了,寫了也沒用,改個變量名的時間就夠你寫出來這行代碼了。
-
看一下代碼效果!證明我這方法有效,沒騙你。
-








