2011-09-14 19 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']; 
?> 

私の質問ですが、それは同じページの 'INPUT1' の値を取得することが可能である(page1.php )送信ボタンをクリックする必要はありませんか? jQueryの

答えて

3

<?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ソリューションが好きですが、私は少し混乱しています。コードの1行だけが必要ですか?そしてそれはどこに正確に行くのですか? PHP変数はどのように割り当てられていますか? – user617123

+0

はい、jQueryでは1行だけ必要です。あなたのPHPでは、$ _POST ['input1']のようにアクセスします。 – Joe

+0

Hmmm、私は間違ったことをする必要があります。 page1.phpの頭では、

'それで、私は' \ n
\ n
3

何のために?実際にフォームを提出する必要なしに別のファイルに提出しますか?

あなたはJavaScriptを使用しています。

document.form1.input1.value 
+0

投票した人に、投票した理由を説明してほしい。あなたが知っている健康ではなく、何の理由もなく投票します。 =) –

+1

私は彼らがあなたを投票したと思う、彼らはPHPの方法を持って来ることを期待していた。 –

関連する問題