我想以这种方式发送获取数据并创建输入,并将这个jquery发送到php页面并获取结果,但是问题是:
警告:为中的foreach()提供了无效的参数
jQuery的
$('#ss').live('click', function () {
$("#main_login").html("<center>waiting plaese . . . .</center>");
var arr = $("#myInputs").val();
$.ajax({
type: 'POST',
url: 'process.php',
data: "myInputs=" + arr,
success: function (data) {
$('#main_login').html(data)
}
});
});
$(function () {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#text').live('click', function () {
$('<p><input type="text" id="myInputs" size="20" name="myInputs[]" value="" placeholder="Input Value" /> <a href="#" id="rtext">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
});
的HTML
<a href="#" id="text">add</a><br>
<div id="p_scents">
<p><label for="p_scnts"><input type="text" id="myInputs[]" size="20" name="myInputs[]" value="" placeholder="Input Value" /></label></p>
<div id="main_login"></div>
的PHP
$name = $_POST['myInputs'];
foreach( $name as $key => $n ) {
print "The name is ".$n." and email is , thank you<br>";
}
问题出在您的JavaScript,而不是PHP。这些行:
var arr = $("#myInputs").val();
[...]
data: "myInputs=" + arr,
问题
$("#myInputs").val()
只会返回第一个元素的值,它将是一个字符串,而不是一个数组"myInputs=" + arr
将以字符串而不是数组的形式发送POST数据解决方案
您需要做一些事情来解决这些问题:
id='myInputs[]'
为使用CSS类(例如class='myInputs'
).myInputs
元素中提取所有值,并将它们组合到一个数组中(提示:使用jQuery的.each函数)"myInputs="
为数组格式(即{ "myInputs[]" : arr }
)让我演示给你看:
的HTML
<p><label for="p_scnts"><input type="text" class="myInputs" size="20" name="myInputs[]" value="" placeholder="Input Value" /></label></p>
Java脚本
$('#ss').live('click', function () {
$("#main_login").html("<center>waiting plaese . . . .</center>");
var arr = [];
$(".myInputs").each(function() {
arr.push($(this).val());
});
$.ajax({
type: 'POST',
url: 'process.php',
data: { "myInputs[]" : arr },
success: function (data) {
$('#main_login').html(data)
}
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句