2

ここに実際に表示するコードはありませんが、日付、都市、住所を含む3つの非表示フィールドを持つフォームがあるとします。また、3つのオプション(たとえば、Apple、Microsoft、Google)の選択肢があります。

私が欲しいのは、ユーザーが選択を別のオプションに変更した場合、jqueryはselectboxの値と3つの非表示フィールドをPHPページ(proces.phpなど)に送信する必要があるということです。Proces.phpはmysql_queryなどを処理し、何も返しません。

誰かがこれがどのように行われるかを私に見せてもらえますか?私はhtmlコードを提供しなかったので、誰かが私のためにスクリプト全体を書くことを期待していませんが、アウトライン、またはチュートリアルなどへのリンクだけを提供しました。

4

4 に答える 4

7

まず、フォームは次のようになります。

<form action="process.php" method="post" id="myForm">
    <select name="site" id="site">
        <option>Apple</option>
        <option>Google</option>
        <option>Microsoft</option>
    </select>
    <input type="hidden" name="date" value="01/05/2012" />
    <input type="hidden" name="city" value="London" />
    <input type="hidden" name="address" value="[... address ...]" />
</form>

次に、AJAXを介して送信するには、次のserialize()メソッドを使用してフォームデータを収集します。

$("#site").on("change", function() {
    var $form = $("#myForm");
    var method = $form.attr("method") ? $form.attr("method").toUpperCase() : "GET";
    $.ajax({
        url: $form.attr("action"),
        data: $form.serialize(),
        type: method,
        success: function() {
            // do stuff with the result, if you want to 
        }
    });
});

または、AJAXを使用せず、標準のフォーム送信のみを使用する場合は、次のようにフォームをトリガーして送信できます。

$("#site").on("change", function() {
    $("#myForm").submit();
});
于 2012-05-01T13:02:46.643 に答える
1

jqueryを使用してフォームを送信する場合は、Jqueryフォームプラグイン<
http://jquery.malsup.com/form/ を使用できるため、基本的にuで実行できるのは

$(document).ready(function(){
$('form selector').ajaxForm(opts);
//u can define the opt urself itz easy look at the link
$("selects selector").change(function(){
$(form selector).ajaxSubmit(function(){//something you wanna do if form is submitted successfully})
});
});
于 2012-05-01T13:03:25.277 に答える
1

見てみましょう、それはフォームであり、ドロップダウン選択が変更されたときに送信されますか?そのためにAJAXを使用する必要はありません。次のようにjquery.change()メソッドを使用できます。

$('.mydropdown').change(function() {
  // Also do some checking to see if the values are not empty 
  // and then submit the form using:
  $('#myform').submit();
});

phpファイルでは、$_POST変数を使用してそれらを取得できます。

于 2012-05-01T13:04:57.937 に答える
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="#">
    <label for="brand">Brand</label>
    <select name="brand" id="brand">
        <option>Apple</option>
        <option>Microsoft</option>
        <option>Google</option>     
    </select>
    <input type="hidden" name="date" id="date" value="7/4/1776" />
    <input type="hidden" name="city" id="city" value="My City"  />
    <input type="hidden" name="address" id="address" value="123 Fake Street" />
</form>
<script type="text/javascript" src='//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>
<script type="text/javascript">
    $('#brand').on('change',function() {
        $.post("process.php", $("#form1").serialize());
    });
</script>
</body>
</html>
于 2012-05-01T13:07:46.613 に答える