0

私の目標は、フォーム全体を ajax 関数を介して送信し、それらの値を php ファイルに送信することです。私が Post を使用している理由はいくつかあります。その 1 つは、MySQL データベース内のデータを変更するためです。

答えを探しているときにいくつかの例を見てきましたが、私が抱えている問題に直接対処しているようには見えません。

たとえば、次の例です。

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");

// Call a function when the state changes.
http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);

それに対処し始めます。

具体的には、複数の値を送信する方法がわかりません。上記の例では、変数 params のステートメントに 2 つの値をハードコーディングしていることがわかります。これらの値をハードコーディングせずに関数に渡す方法を知りたいです。

私のフォーム:

<table border="0" cellpadding="2" cellspacing="5">
    <th colspan="2" align="center">Check Out</th>
    <form name="checkOut" method="post" onSubmit="return(validate(this))"> 
        <tr>
            <td>Territory Number</td>
            <td><input type="text" name="numberOut" tabindex="1" maxlength="3" size="3" /></td>
        </tr>
        <tr>
            <td>First Name of Publisher</td>
            <td><input type="text" onKeyUp="showHint(this.value)" name="fName" tabindex="2" maxlength="15"/></td>
        </tr>
        <tr>
            <td>Last Name of Publisher</td>
            <td><input type="text" onKeyUp="showHint_l(this.value)" name="lName" tabindex="3" maxlength="15" /></td>
        </tr>
        <tr>
            <td>Special Campaign</td>
            <td><input type ="checkbox" name="specialC" tabindex="4" value="Yes"/></td>
        </tr>
        <tr>
            <td><input type="button" onClick="clearForm()" value="Reset" /></td>
            <td><input type="submit" value="Check Out" /></td>
        </tr>
    </form>
    <p>Suggestions: <span id="txtHint"></span></p>
</table>

ここでは、numberOut、fName、lName、および specialC の値を渡したいと考えています。それぞれを個別にパスする方法は知っていますが、グループとしてはパスしません。最終的には、たとえば $_POST['fName'] を使用して php を介してこれらの値にアクセスできるようにしたいと考えています。

このサイトで同様の質問に対するいくつかの回答を見ると、多くの人が jQuery を使用すると言います。その方が簡単なのは承知していますが、Web ベースの言語は初めてなので、最初に ajax の使い方を学びたいと思っています。

4

1 に答える 1

1

を作成する必要がありますparams

これがあなたのためのサンプルコードです

var params = "numberOut="+document.getElementsByName("numberOut")[0].value;
params+="?fName="+document.getElementsByName("fName")[0].value;
params+="?lName="+document.getElementsByName("lName")[0].value;
var isSc = document.getelementsByName("specialC")[0].checked;
if(isSc){
    params+="?specialC=Yes";
}
于 2012-09-07T22:13:06.943 に答える