JS向PHP傳遞數(shù)值只有兩種方法:GET和POST,GET把參數(shù)寫(xiě)在URL上,例如abc.php?param=123,POST的參數(shù)在數(shù)據(jù)里面。
創(chuàng)新互聯(lián)專(zhuān)注于松溪網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供松溪營(yíng)銷(xiāo)型網(wǎng)站建設(shè),松溪網(wǎng)站制作、松溪網(wǎng)頁(yè)設(shè)計(jì)、松溪網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造松溪網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供松溪網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
JS調(diào)用PHP(無(wú)論GET或者POST)一般有兩種方式,一是是用HTML窗口,使用GET的例子:
iframe src=abc.php?param=123/iframe
使用POST的例子:
form?action=abc.php?method=post?name=form1
input?type=hidden?name=param?value=123
/form
script?language=javascript
form1.param.value=123;
form1.submit();
/script
JS調(diào)用PHP(無(wú)論GET或者POST)的另外一種方式是是用AJAX,例子代碼網(wǎng)上很多,我寫(xiě)一個(gè)最簡(jiǎn)單的:
script?language=javascript
var?xmlHttp=null;
if?(window.ActiveXObject)?xmlHttp=new?ActiveXObject('Microsoft.XMLHTTP');
else?if?(window.XMLHttpRequest)?xmlHttp=new?XMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open('POST','abc.php');
xmlHttp.send('param=123');
function?handleStateChange(){
if?(xmlHttp.readyState==4){
if?(xmlHttp.status==200){
alert(xmlHttp.responseText);
}
}
}
/script
這種方法就是ajax數(shù)據(jù)傳輸,異步數(shù)據(jù)交互
//這里用到了jquery的插件,使用前需引用jquery.js
script
function?keyUp(e)?{
var?currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
//如果是空格
if(currKey?==?32){
$.ajax({
url:?'save.php',
data:?$('#id').val()
success:?function(data){
alert(data);
}
});
}
}
document.onkeyup?=?keyUp;
/script
具體代碼請(qǐng)谷歌?AJAX
1:HTML中的值如何傳到JS,下面假設(shè)是文件1.php
復(fù)制代碼 代碼如下:
html
body
form action="1.php"
method="post"
name:input type="text"
name="username" id="username"
rename:input
type="text" name="username1" id="username1"
input
type="button" value="submit" on CliCk="get()"
/form
/body
/html
JS假如想取文本框中用戶(hù)輸入的name值,這樣寫(xiě)
復(fù)制代碼 代碼如下:
script
language='JavaScript'
function get()
{
var
n=document.getElementById('username').value;
alert
(n);
}/script
這樣的話(huà)在有調(diào)用JS
get()時(shí)就會(huì)彈出警示框,里面的內(nèi)容就是name的值。
2:假如說(shuō)JS中的這個(gè)取到的name值要傳回rename的文本框中,這樣寫(xiě)
復(fù)制代碼 代碼如下:
script language='JavaScript'
function get()
{
var n=document.getElementById('username').value;
document.getElementById("username1").value=n;
}/script
這樣的話(huà)在下面調(diào)用get()就會(huì)自動(dòng)顯示你上面name輸入的值。
3:PHP中取頁(yè)面的值
這個(gè)我想大家都會(huì)了吧
復(fù)制代碼 代碼如下:
?php
$name=$_REQUEST["username"];
echo
$name;
?
4:PHP的值傳回頁(yè)面
在HTML中插入PHP語(yǔ)言,可以調(diào)用PHP中變量的值,也可用Smarty(推薦)。
有了以上這些,不管是HTML頁(yè)面里的值還是JS中變量的值,都可以輕松的傳入PHP,當(dāng)然,PHP的值也可傳到想要的地方。
js僅在 瀏覽器中運(yùn)行.
php 僅在服務(wù)器端運(yùn)行.
2者交互, 通常通過(guò) http get/post 協(xié)議進(jìn)行交互.
因此, 要將 js 變量傳輸?shù)?php, 需通過(guò) get/post 將參數(shù)傳入.
譬如:
script
function test(){
var x="abc";
$.ajax("test.php?x="+x);
}
/script
而 test.php 中, 通過(guò) $_REQUEST["x"] 即可拿到j(luò)s 請(qǐng)求過(guò)來(lái)的變量.
追問(wèn)
感覺(jué)你的答案最符合我的需求,只是我還是碰到了問(wèn)題。
test.php文件中
onchange事件觸發(fā)test()函數(shù),并將賦值。
script
function test(){
var x="abc";
$.ajax("test.php?x="+x);
}
test.php文件中
echo $_REQUEST["x"]并未獲取到有效值。echo沒(méi)有輸出。
請(qǐng)問(wèn),這到底是什么原因。
追答
是因?yàn)?script 中并沒(méi)有輸出由 php 傳回的結(jié)果.
改成這個(gè)試試看.
1
2
3
4
5
6
script
function test(){
var x="abc";
$.ajax("test.php?x="+x),null,function(data){alert(data)});
}
/script