1

私のサイトでは、phpにコンボボックスがあります。

<script type="text/javascript">
function showUserVisits(reservationObjectId)
{
    //alert(reservationObjectId);
    if (reservationObjectId == "")
    {
        document.getElementById("txtHint").innerHTML="";
        return;
    }
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }

    xmlhttp.open("GET","get_user.php?q=" +reservationObjectId,true);
    xmlhttp.send();
}       
</script>

<form>
    <select name="users" onchange="showUserVisits(this.value)">
    <!-- <option value="">Select a person:</option> -->
    <option value="1">aaa1</option>
    <option value="2">aaa2</option>
    <option value="3">aaa3</option>
    <option value="4">aaa4</option>
    </select>
    </form>

ユーザーがコンボボックスの項目を変更すると、メソッドshowUserVisitsがajaxによって呼び出されます。そして、reservationObjectIdをget_user.phpサイトに渡す必要があります。GETメソッドの実行方法GETメソッドでは誰かがIDを変更できるため、このパラメーターをPOSTメソッドで渡したいと思います。どうすればいいですか?

ありがとう

4

5 に答える 5

2

次のように、キーと値のペアをに追加します.send()

xmlhttp.open("POST","get_user.php",true);
xmlhttp.send("reservationId=" + reservationObjectId);

複数のキーと値のペアを追加するに&は、区切り文字として使用します。

サーバーサイドスクリプトでは、でアクセスできるようになります$_POST['reservationID']

于 2013-01-10T20:41:16.603 に答える
2

この行を変更します。

xmlhttp.open("GET","get_user.php?q=" +reservationObjectId,true);

これに:

xmlhttp.open("POST", url,true);

詳細については、こちらをご覧ください。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms757849(v=vs.85).aspx

ここではいくつかの例を示します。

http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

例の1つ(上記のリンクから):

var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);
于 2013-01-10T20:42:18.623 に答える
1
xmlhttp.open( "POST", 'get_user.php', true );
xmlhttp.send( "q="+reservationObjectId );  

ただし、投稿データも編集できることに注意してください。phpファイルで値を確認してください。

$q = (int) $_POST['q'];

そして、reservationIDがユーザーのものであることを確認してください

于 2013-01-10T20:42:59.307 に答える
0

以下のコードは投稿の方法を示していますが、POSTメソッドを使用すると誰かがIDを変更することもできます

xmlhttp.open("POST","get_user.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("q="+encodeURIComponent(reservationObjectId));
于 2013-01-10T20:43:11.250 に答える
0
<script type="text/javascript">
function showUserVisits(reservationObjectId)
{
//alert(reservationObjectId);
if (reservationObjectId == "")
{
    document.getElementById("txtHint").innerHTML="";
    return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");          // set header in case of post method
xmlhttp.open("POST","get_user.php",true); // set post method
xmlhttp.send("q="+reservationObjectId); // set data

}

于 2013-06-25T06:28:35.010 に答える