? ? ? 本文是最近做WAMP網站的學習知識,這做這個網站過程中需要通過新聞通告的超鏈接顯示相應的具體內容,所以就涉及到一些相關變量賦值傳遞的內容,包括:HTML超鏈接傳遞值通過JavaScript顯示、JavaScript變量轉換成PHP變量、超鏈接實現傳遞給PHP連接數據庫(重點)、PHP輸出JavaScript內容。
### 一. HTML超鏈接傳遞值
? ? ? 首先講述通過HTML超鏈接<A href=></A>實現跳轉,再通過JavaScript實現獲取傳遞的值。代碼如下:其中testA.php是超鏈接,testB.php是獲取的傳遞值。
~~~
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>值傳遞</title>
</head>
<body>
<?php
$result=10001;
?>
<A href="testB.php?newid=<?php echo $result; ?>" >跳轉鏈接</A>
</body>
</html>
~~~
? ? ? testB.php代碼如下:
~~~
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>μ???脦</title>
</head>
<body>
<input id="new_id" type="hidden">
<script language=javascript runat="server">
var src = document.getElementById("new_id").value = location.href;
//alert(src);
var params = src.split('?');
//輸出newid=10001中的id
if(params[1]) {
var idparams = params[1].split('=');
}
</script>
<P>輸出src完整路徑:<script>document.write(src);</script>
<P>輸出params[1]獲取參數:<script>document.write(params[1]);</script>
<P>輸出id值:<script>document.write(idparams[1]);</script>
</body>
</html>
~~~
? ? ? 其中核心代碼是:
? ? ? <A href="testB.php?newid=<?php echo $result; ?>" >跳轉鏈接</A>
? ? ? 設置URL鏈接,需要注意的是HTML中嵌套PHP的變量,同時可以與PHP中SQL查詢賦值比較下:
? ? ??$result=$hgi->doquery('2',"select * from Course_News where CN_Nid='".$_GET['newid']."';");?
? ? ? 然后在testB.php中通過JavaScript顯示其值:
? ? ??var src = document.getElementById("new_id").value = location.href;
? ? ??<script>document.write(src);</script>

### 二. JavaScript變量轉換PHP值
? ? ? 此時已經通過獲取了var?idparams[1] = 10001,但是我想實現的效果是通過id數據庫主鍵,獲取數據庫的內容,而數據庫的那部分代碼如下:
? ? ??$result=$hgi->doquery('2',"select * from Course_News where CN_Nid='".$id."';");?
? ? ? 所以只需要把$id賦值為JavaScript的var型變量即可。引用?mingfish2 發表的貼“怎么將js變量賦值給php?”

? ? ? 由于PHP或Ajax學習較少,所以我沒有實現,僅引用別人的方法和思想。通常采用的方法如下:
? ? ? 1.通過Ajax實現js變量賦值給PHP?(引用:[http://www.xgllseo.com/?p=3241](http://www.xgllseo.com/?p=3241))
~~~
JS部分代碼
$('button').click(function(){
var js2_101=30;
$.ajax({
type:'GET',
url:"3.php",
data:{text:js2_101},
success: function(data){
alert(data)
}
});?
return false;
});
PHP部分代碼
$m2_10=$_GET['text'];
$php2=10;
echo $m2_10+$php2."<---JS賦值給php,可以在PHP中進行編程";
~~~
? ? ? 此處我更想分享的是它的一些原理知識:
? ? ? JS變量賦值給PHP時,你需要知道JS是客戶端語言可以直接在瀏覽器上運行,PHP是服務器語言在后臺運行,所以JS變量不能直接賦值給PHP。那么怎么樣知道什么是服務器語言什么是客戶端語言呢?其實查看網頁的源代碼我們會發現可以直接查看到JS的源代碼而PHP的不能查看源代碼只能把結果輸出到頁面上。為了實現這效果,這里使用ajax,定義一個JS變量,將變量賦值給data,再將data的參數賦值給php變量。
? ? ? 而PHP能賦值給JS是因為PHP是在服務器端被解析。服務器端不會解析JS代碼,JS代碼和HTML代碼在服務器端都是原樣輸出的。只有標注php能識別的位置,PHP才會去進行解析并執行。而JS則是到了客戶端才被客戶的瀏覽器解析。
? ? ? 如果需要把JS的變量“賦值”給PHP,這就涉及交互了。就是所謂的提交,因為但凡你在瀏覽器看到的頁面,無論是PHP,ASP,JSP等等,都是HTML文檔,本地需要修改服務器端的數據,當然是要跟服務器進行交互。而進行交互的中間人就是JS,JS搭起客戶與服務器交互的橋梁。
? ? ? 2.通過表單GET或POST方法獲取值
? ? ? (參考:[http://jingyan.baidu.com/article/fd8044faf3cda05030137a47.html](http://jingyan.baidu.com/article/fd8044faf3cda05030137a47.html))
? ? ??通過Javascript將客戶端要傳遞的數據先交給表單中的一個隱匿的標簽中,然后以提交表單的形式,PPHP通過POST方法獲取該數據。
~~~
1)mainfunc.js代碼:
function func(){
var a = "Javascript變量";
document.getElementById("test").value = a;
}
2)test.php代碼。
<?php
if(isset($_POST['sub'])){
$test = $_POST['test'];
echo "<br>".$test."----php變量顯示";
}
?>
<form action="" method="post">
<input type="hidden" id="test" name="test"/>
<input type="submit" id="sub" value="變量轉換" />
</form>
~~~
### 三.?超鏈接實現傳遞給PHP連接數據庫
? ? ? 其實上面“一二”講述的就是如何實現過程如下:
? ? ? HTML=>超鏈接=>JavaScript=>PHP=>數據庫
? ? ? 由于Ajax沒有實現,所以我后來發現一個更簡單的方法,就是在超鏈接設置參數的時候,其實就可以直接獲取相關參數,并不需要JavaScript去處理字符串獲取相應的值。代碼如下:
? ? ? //testA.php設置超鏈接
? ? ? <A href="main_right_yk4-1-content.php?newid=<?php echo $id; ?>">超鏈接</A>
? ? ? //testB.php中獲取數據庫內容
? ? ??$hgi=new HttpPostInf();
? ? ? $result=$hgi->doquery('2',"select * from Course_News whereCN_Nid='".$_GET['newid']."';");?
? ? ? //解析json
? ? ? $dj=json_decode($result,true);
? ? ? 后面的文章我會講述PHP和數據庫的相關知識,此處你只需要知道如何獲取連接即可。由于項目是我和另一個同學完成,他把后臺數據庫操作都用PHP類封裝長好了(采用新浪SAE),所以我前端調用非常方便(采用apache)。該部分可以實現的初步效果如下圖所示:


### 四.?PHP輸出JavaScript內容
? ? ? 該部分比較簡單,將PHP變量放在HTML的隱匿類型的標簽中,然后Javascript通過document.getElementById("").value來獲取標簽的值,即可得到PHP的變量值。也可以直接進行php與js變量的賦值。代碼如下:
~~~
<script> //PHP變量能賦值給JS編程運算
<?php $m=10; ?> //php的變量$m
var js = 20; //js變量js
var n=<?php echo $m; ?>; //php值賦值給js變量n
document.write(js+n); //結果:php的值能賦值給JS變量,并且可以在JS程序中運用
</script>
~~~
? ? ? 該代碼輸出的結果為30。另一種代碼如下:
~~~
<?php
$test = "It's a test!";
?>
<input type="hidden" id="test" name="test" value="<?=$test;?>" />
<script>
var test_js = document.getElementById("test").value;
</script>
<?php
//其它處理
?>
~~~
? ? ? 最后希望文章對大家有所幫助,下一篇想寫寫WAMP關于數據庫方面的知識(Window+Apache+MySQL+PHP)。
? ? ? (By:Eastmount 2015-2-20 下午4點 ?[http://blog.csdn.net/eastmount/](http://blog.csdn.net/eastmount/))