0

AJAX を使用して配列を php ページに渡す必要があります。この入力要素の配列は、他のページに送信されます。

<input type="text" name="txtCoursesNamewith[]" id="txtCoursesNamewith" size="117" >

これは、送信する準備をする方法です。

var txtCoursesNamewith = $.serialize($('#txtCoursesNamewith').val());

しかし、スクリプトを実行すると次のエラーが発生します。

TypeError: $.serialize は関数ではありません

AJAX で配列を送信するにはどうすればよいですか?

4

4 に答える 4

1

私は同じ問題に直面しており、このようなコードを使用しています。ただし、最初に隠しフィールドを 1 つ挿入し、次のようにテキストボックス ID を設定してください。

<input type="hidden" name="txt_count" id="txt_count" value="3" />
<input type="text" name="txtCoursesNamewith[]" id="txtCoursesNamewith1" size="117" >
<input type="text" name="txtCoursesNamewith[]" id="txtCoursesNamewith2" size="117" >
<input type="text" name="txtCoursesNamewith[]" id="txtCoursesNamewith3" size="117" >

<script type="text/javascript">
var txt_count= $('#txt_count').val();
for (i=1; i<=txt_count; i++){
   queryString += "&txtCoursesNamewith%5B%5D=" + $('#txtCoursesNamewith'+i).val();
}
</script>

最後にqueryString、変数を ajax に渡すことができ、配列を出力できます。

<?php
echo "<pre>";
print_r($_GET); // or print_r($_POST);    
?>
于 2013-05-04T09:57:18.567 に答える
0

値ではなくフィールド自体で機能する.val()ため、使用する必要はありません。.serialize()(フィールドから名前と値を取得する必要があるため)

serialize()jquery オブジェクトをパラメーターとして使用するのではなく、jQuery オブジェクトを直接呼び出すこともできます。次のようにします。

var txtCoursesNamewith = $('#txtCoursesNamewith').serialize();

それが役立つことを願っています。

于 2013-03-17T19:27:18.033 に答える
0

$.serialize($('#txtCoursesNamewith').val()) は文字列であり、jQuery オブジェクトではないため、シリアライズ機能はありません。

入力を (その値とともに) シリアライズする場合は、 $('#txtCoursesNamewith').serialize(); を使用します。

$.ajax({
type: 'POST', 
url: your url,
data: $('#'+form_id).serialize(), 
  success: function(data) {
    $('#debug').html(data);
  }
});

次にphpで

<?php
  print_r($_POST);
?>
于 2013-03-17T14:14:57.293 に答える
0
var textBoxes;   
$('input[name="txtCoursesNamewith[]"]').each(function() {
textBoxes+=$(this).val()+"|||";
});

これtextBoxesで、テキスト フィールドのすべての値が|||で取得されます。分離してphpスクリプトに渡し、explode()関数を使用して各入力値を分割します。それはあなたを助けるかもしれません

于 2013-03-17T19:04:47.823 に答える