2011-09-14 34 views
2

在過去,無論何時我需要獲取html元素的值,我總是會提交一個表單來加載不同的頁面。喜歡的東西:在同一頁面上獲取PHP中HTML元素的值?

page1.php中

<form name="form1" action="page2.php" method="post"> 
    <input type="hidden" name="input1" value="value1" /> 
</form> 

使page2.php

<?php 
    $data = $_POST['input1']; 
?> 

我的問題是,是否有可能得到 '輸入1' 的同一頁面上的值(page1.php中)而不需要點擊一個提交按鈕?

回答

3

隨着jQuery的

<?php 
    if (isset($_POST['data'])) { 
     $data = $_POST['data']; 
     print("data is: $data"); 
     return; 
    } 
?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="jquery-1.6.3.js"></script> 
</head> 
<body> 

<div>Response from server: <span id="response"></span></div> 
<script type="text/javascript"> 
    $.post('test.php',{'data': "value1"}, function (data) { 
     $('#response').text(data); 
    }); 
</script> 
</body> 
</html> 

非jQuery的 IE沒有XMLHttpRequest對象所以這裏是IE墊片:

Yes, using ajax/javascript: 

var formData = new FormData(); 

formData.append("input1", "value1"); 

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "page1.php"); 
xhr.send(formData); 

if (typeof XMLHttpRequest == "undefined") XMLHttpRequest = function() { 
    try { 
     return new ActiveXObject("Msxml2.XMLHTTP.6.0"); 
    } 
    catch (e) {} 
    try { 
     return new ActiveXObject("Msxml2.XMLHTTP.3.0"); 
    } 
    catch (e) {} 
    try { 
     return new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    catch (e) {} 
    //Microsoft.XMLHTTP points to Msxml2.XMLHTTP and is redundant 
    throw new Error("This browser does not support XMLHttpRequest."); 
}; 
+0

我喜歡jQuery解決方案,但我有點困惑。那一行代碼是唯一需要的嗎?它到底在哪裏? php變量是如何分配的? – user617123

+0

是的,用jQuery你只需要一行。在你的PHP中,你會像$ _POST ['input1'] – Joe

+0

那樣訪問它,嗯,我一定是做錯了。在page1.php的頭部我有''然後在body中我有'

\ n \ n
\ n \ n <?php \ n $ data = $ _POST ['input1']; \ nprint(「value is:$ data」); \ n?>'我得到一個空白($數據是空的)。 – user617123

3

爲了什麼?你是否想將它提交給另一個文件,而不需要實際「提交」表單?

對此使用JavaScript。

document.form1.input1.value 
+0

我希望那些投下來解釋他們爲什麼投票下來。你知道這並不健康,沒有任何理由投票。 =) –

+1

我認爲他們把你投給了你,因爲他們希望你帶來PHP'ish的方式。 –

相關問題