我试图使用jQuery从html中获取数组的值,然后将其传递给PHP脚本。我尝试过在本网站上发现的许多变体,但都没有成功。
这是我到目前为止所拥有的。 (我使用jQuery根据所需的数量生成textareas,最多10个)。
<form>
<input type='text' value='Title', name='title' id='title' /><br>
<h2 class="achievements" id="subheading">Required Amount</h2><br><br><br>
<select id="selection">
<option value='0'>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>
<div class="achievements" id="board"></div>
</form>
</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#selection').change(function() {
var required = parseInt($(this).val());
var i = 0;
var str1 = "<h2 id=\"subheading\">Requirements</h2><br><br><br>";
for( i = 0; i < required; i++) {
str1 += "<br><br><label></label><textarea name='requirement["+ i +"]' class=\"requirements\" rows='2' cols='40'></textarea>";
}
str1 += "<br><input type='button' class='button' onclick=\"button('achievements/create_achievement');\" value='Add Achievement'/>";
$('#board').html(str1);
});
return false;
});
</script>
抓取数据的jQuery脚本是:
function button(uri) {
var url = "http://www.blahblah.com/" + uri;
var requirements = [];
/**
* solution below found on SO does not work as thought
*/
/////////////////////////////////////////////////////////////////////////
requirements = $('textarea[name^="requirement\\[\\]"]').map(function() {
return $(this).val();
}).get();
////////////////////////////////////////////////////////////////////////
$.ajax({
url: url,
data: {id:requirements},
type: "POST",
success: function(data) {
$('#main-board').html(data);
}
});
return false;
}
我的问题是,在使用alert(要求)检查数据数组时,找不到任何内容。我假设这是因为使用我使用的jQuery语句没有正确解析html中的数据。任何援助都会很棒。谢谢
答案 0 :(得分:0)
textareas的选择器是错误的,因为textarea的名称在括号中有小数;另见jquery selectors page for ^=
:
描述:选择具有指定属性的元素,其值以开头,并带有给定的字符串。
替换
$('textarea[name^="requirement\\[\\]"]')
带
$('textarea[name^="requirement\\["]')
您不必再改变了。
另见this exmaple。