我希望通过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);`
答案 0 :(得分:1)
我不确定我的问题是否正确,但不应该做以下工作?
通过ID
选择jqueryvar 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);