我尝试使用jQuery将多个值发布到PHP页面,然后将这些值用作单个值。
我从Jquery站点的代码开始:
<form ><br>
<select name="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select>
<br>
<br>
</form>
<p><tt id="results"></tt></p>
<script>
function showValues() {
var str = $( "form" ).serialize();
$( "#results" ).text( str );
}
$( "input[type='checkbox'], input[type='radio']" ).on( "click", showValues );
$( "select" ).on( "change", showValues );
showValues();
</script>
结果是:multiple=Multiple&multiple=Multiple2
,没关系。
现在mycproblem是如何将这些值发布到test.php
页面,然后使用唯一值,如下所示:
$multiple=[first value]
$multiple2=[second value]
etc...
答案 0 :(得分:2)
将表单中的multiple
更改为multiple[]
。这会将您的值提交为多个[] =第一个值,多个[] =第二个值等等。
jQuery的,
$('form').on('submit', function(e)
{
e.preventDefault();
formData=$('form').serialize();
$.ajax(
{
type: "POST",
url: "test.php",
data: formData,
success: function(data)
{
alert("Form submitted");
},
error: function()
{
alert("Error in form submission");
}
});
});
在PHP端,
$multiple=$_POST['multiple']; // Get the array input
现在分别继续使用值
foreach($multiple as $key => $value)
{
echo "value number $key is $value"; // This will print as value number 0 is 1st value, value number 1 is 2nd value and more.
}
答案 1 :(得分:0)
您必须使用AJAX将表单发布到test.php。试试这个 -
$("form").on('submit', function(ev){
ev.preventDefault();
var form = $(this);
var action = 'test.php';
var data = $(this).serialize();
$.post(action, data)
.done(function(response){
if(response.success == false)
{
// If failed
}
else
{
// If successfully submitted
}
});
});
另一方面(test.php),你会得到一个像这样的多个值的数组,
$multiple1 = $_POST['multiple']['0'];
$multiple2 = $_POST['multiple']['1'];