1:HTML中的值如何傳到JS,下面假設(shè)是文件1.php
10余年的衢江網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整衢江建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“衢江網(wǎng)站設(shè)計(jì)”,“衢江網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
復(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
這樣的話在有調(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
這樣的話在下面調(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的值也可傳到想要的地方。
這種方法就是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
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
JS向PHP傳遞數(shù)值只有兩種方法:GET和POST,GET把參數(shù)寫(xiě)在URL上,例如abc.php?param=123,POST的參數(shù)在數(shù)據(jù)里面。
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
兩種方案:
1,如果你需要無(wú)刷新操作的話,就用AJAX異步操作就行了,將值附帶了URL地址里面讓PHP程序調(diào)用就行了。
2,如果你的頁(yè)面是可以刷新的話,可以使用HIDDEN控件來(lái)實(shí)現(xiàn),先用JS改變Hidden控件的值,然后刷新頁(yè)面,用php來(lái)讀取hidden控件的值就行了!