0

だから、私がやろうとしているのはAJAXリクエストを送信することですが、ご覧のとおり、フォームには多くのフィールドがあり、配列を使用して検証を行っています。同じ配列を使用して、 AJAXを介して送信される値:

JSでforループを使用したことはありませんが、とにかくおなじみのようです。

ループが作成される方法は、明らかに機能しません。

for (i=0;i<required.length;i++) {
        var required[i] = $('#'+required[i]).attr('value');

これにより、必要な変数が作成されます。それらの使用方法は?

うまくいけば、皆さんは私を助けることができます!!! どうもありがとうございます!

required = ['nome','sobrenome','endereco','codigopostal','localidade','telemovel','email','codigopostal2','localidade2','endereco2','nif','entidade','codigopostal3','localidade3','endereco3','nserie','modelo'];              


function ajaxrequest() {
    for (i = 0; i < required.length; i++) {
        var required[i] = $('#' + required[i]).attr('value');
        var dataString = 'nome=' + required[0] + '&sobrenome=' + required[1];
    }
    $.ajax({
        type: "POST",
        url: "ajaxload/como.php",
        data: dataString,
        success: function() {
            $(".agendarleft").html("SUCESS");
        }
    });
4

3 に答える 3

4

適切な要素IDと値が確実に渡されるようにするには、さまざまな要素をループして、最初にデータをオブジェクトに追加します。

jQuery:

required = ['nome', 'sobrenome', 'endereco', 'codigopostal', 'localidade', 'telemovel', 'email', 'codigopostal2', 'localidade2', 'endereco2', 'nif', 'entidade', 'codigopostal3', 'localidade3', 'endereco3', 'nserie', 'modelo'];

function ajaxrequest() {
    var params = {}; // initialize object

    //loop through input array
    for (var i=0; i < required.length; i++) {             
        // set the key/property (input element) for your object
        var ele = required[i]; 
        // add the property to the object and set the value
        params[ele] = $('#' + ele).val(); 
    }
    $.ajax({
        type: "POST",
        url: "ajaxload/como.php",
        data: params,
        success: function() {
            $(".agendarleft").html("SUCESS");
        }
    });
}

デモ: http: //jsfiddle.net/kPR69/

于 2012-07-11T16:05:43.567 に答える
2

保存したい各フィールドにクラスを配置し、これを使用してフィールドを反復処理する方がはるかにクリーンです。そうすれば、入力名も指定する必要がなくなり、jsonオブジェクトをサービスに直接送信できます。

var obj = {};

$('.save').each(function () {

       var key = $(this).attr('id');
       var val = $(this).val();

       if (typeof (val) == "undefined")
           val = "''"

       obj[key] = val;
}

次に、objをAJAX呼び出しのデータプロパティとして送信します。

于 2012-07-11T16:00:40.383 に答える
1

コードにはいくつかの問題があります。'required'は上書きされ、ループ内で再宣言されています。

事前に作成されたライブラリを使用することをお勧めします。以下にいくつか含めます。

http://jquery.malsup.com/form/#validation

https://github.com/posabsolute/jQuery-Validation-Engine

そうでなければ、フォローはあなたを近づけるでしょう。配列を文字列に変換する必要がある場合があります。

var required = ['nome','sobrenome'];              

function ajaxrequest() {
  var values;
  for (i = 0; i < required.length; i++) {
    var values[i] = $('#' + required[i]).attr('value');
  }
  $.ajax({
    type: "POST",
    url: "ajaxload/como.php",
    data: values,
    success: function() {
        $(".agendarleft").html("SUCESS");
    }
});

}

于 2012-07-11T15:59:41.477 に答える