在ajax中选择多个var

时间:2015-03-18 06:00:55

标签: javascript php jquery ajax loops

我希望通过Ajax调用发送由php生成的HTML元素的多个属性。

例如:

<div id="chart" >
    $i=1;
    while($i<10){
       <input type="text" calss="item" id="$i" >   
       $i++;
    }
 </div>

上面的代码表示我想通过ajax代码发送的信息部分,如下所示。 输入ID与表示不同项目的页面不同。我的问题是如何选择那些id来获得输入和输入中的val();同时将它们声明为变量,以便我可以通过AJAX调用传递这些值。     `

var main = function() {

$('.btn').click(function(){
var item1=$('#1').val();
var item2=$('#2').val();
var item3=$('#3').val();
var item4=$('#4').val();
var item5=$('#5').val();
var item6=$('#6').val();
var item7=$('#7').val();
var item8=$('#8').val();
var item9=$('#9').val();

 $.ajax({
    type:"POST",
    url: "something.php",
    cache:0,
    data:({
     "item1":item1,
     "item2":item2,
    "item3":item3,
   "item4":item4,
    "item5":item5,
    "item6":item6,
    "item7":item7,
    "item8":item8,
    "item9":item9,
    }),
    success:function(result){
    $('#chart').html(result);
    },
    complete:function(){
        alert('good!!');
    }   
     });
 });

 }
   $(document).ready(main);`

2 个答案:

答案 0 :(得分:1)

我不确定我的问题是否正确,但不应该做以下工作?

通过ID

选择jquery
var myInputObject = $("#1");
alert(myInputObject.val());

$("#1")会返回您的字段,其ID为1

或按班级选择

var myInputObjects = $(".item");

$(".item")返回包含属性class=item

的所有字段

jQuery selectors API-Documentation

CREATE:

<div id="chart" />

<script type="text/javascript">
    for(var i = 1;i<10;i++){
        $('<input/>', {
           id: i,
           class: "item",
           type: "text"
        }).appendTo('#myFields');
    {
</script>

- &GT;创建10个input元素并将其附加到<div id="chart" />

创建帖子请求:

var postData = $(this).serializeArray();
$.ajax({
    type:"POST",
    url: "something.php",
    cache:0,
    data : postData,
    success:function(data, textStatus, jqXHR)
    {
        //data: return data from server
    },
    error: function(jqXHR, textStatus, errorThrown)
    {
        //if fails     
    }
});

- &GT;将您的表单作为POST请求发送至something.php ...您可以通过$_POST["1"]

获取您的价值

答案 1 :(得分:0)

我在这里使用了一种方法How to get an Array with jQuery, multiple <input> with the same name来解决我的问题

       var main=function(){
      $('.btn').click(function(){
       var items-name = $('input[class="item"]').map(function(){
            return $(this).val();
            }).get();
       var items-id=$('input[class="item"]').map(function(){
            return $(this).attr('id');
        }).get();

        $.ajax({
        type:"POST",
        url: "something.php",
        cache:0,
        data:({
         "name":items-name,
         "id":items-id                  
        }),
         success:function(){
        alert('done');
        }
       });
        });
         }
        $(document).ready(main);