我想通过foreach循环使用php发布动态生成的多个文本框。 例如,我正在研究问题库和从php发布多个答案。 这是我动态生成文本框的代码,但现在我不知道如何通过foreach循环发布生成的文本框的值。
$("#questionbank").live('click',function(){
var mydata = '<div id="questionbank-content" class="page">';
mydata += '<div class="question"><div class="Label">Question</div><div class="textarea"><textarea id="question" rows="3" cols="30"></textarea></div></div><div class="answer"><div class="Label">Answer</div><div class="textarea"><textarea id="answer" rows="3" cols="30"></textarea></div><div class="option"><input id="a" name="answers" type="radio"></div><span id="add">Add</span>';
var i=1;
$('#add').live('click',function(){
j=i++;
$(this).after('<div class="Label">Answer</div><div class="textarea"><textarea id="answer + '+ j +'" rows="3" cols="30"></textarea></div><div class="option"><input id="a + '+ j +'" name="answers" type="radio"></div><span id="add">Add</span>');
//$(this).after('<input id="'+ j +'" type="text" value="'+ j +'"/><span id="add">Add</span>');
$(this).remove();
});
mydata += '</div></div>';
$("#leftcontainer").html(mydata);
});
答案 0 :(得分:1)
考虑以下HTML
<div id="start">Start</div>
<div id="container">
</div>
我想你想通过$.post()
或$.ajax()
var i=1;
$('#start').one('click',function(){
j=i++;
$('#container').append('<input id="answer'+ j +'" type="text" value=""/><span id="add">Add</span>');
$('#container').after('<div id="submit">Submit</div');
});
$('#add').live('click',function(){
j=i++;
$(this).after('<input id="answer'+ j +'" type="text" value=""/><span id="add">Add</span>');
$(this).next().next().after('');
$(this).remove();
});
$('#submit').live('click',function(){
var x = $('#container > input');
var qstring='op=insertquestion'; //additional para if u want to pass any
$.each(x,function(index,value){
var id = $(this).attr('id');
var data = $(this).val();
qstring += '&'+id+'='+data+'';
});
$('#start').before(qstring + '<br/>');
});
获得变量qstring
后,只需使用$.post()
方法发布字符串。
答案 1 :(得分:0)
最简单的方法是通过jQuery构造textarea并提交按钮并附加一个单击处理程序。不是一个完整的解决方案,但它应该有希望给你一个想法:
$("#add").live("click", function() {
var textarea = $("<textarea />", { "class": "textarea" });
var submitButton = $("<button />", { "type": "submit" });
submitButton.bind("click", function() {
var text = textarea.val();
$.post("/path/to/script.php", { text: text });
});
});
这将创建一个textarea和一个提交按钮。调用提交按钮时,会对script.php进行HTTP POST,并将textarea内容作为参数。