我试图通过Javascript将数组输入发布到PHP,但是当我打印发布的数组时,它不会在控制器中显示任何内容 我附上我的代码
submitHandler: function(form) {
$('input[name="val_profession_id[]"]').val();
}
任何帮助都很明显。
这是我的数组选择框,我需要通过ajax发布到控制器
<select class="select_box form-control" multiple="multiple" name="val_profession_id[]" id="val_profession_id">
</select>
和ajax代码是:
val_profession_id = $('input[name="val_profession_id[]"]').val();
答案 0 :(得分:3)
我不知道当数组将HTML传递给控制器函数时会发生什么,但至少我可以告诉你如何将数据从HTML传递给控制器函数
HTML代码必须是这样的: -
content-type
在PHP方面: -
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<form>
<select class="select_box form-control" multiple="multiple" name="val_profession_id[]" id="val_profession_id">
<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>
</select>
<input type="button" value="Submit" />
</form>
<script>
$('input[type=button]').click(function(){
$.ajax({
url: "1.php", // pass controller function Url here
type:'POST',
data: $('form').serializeArray(),
success:function(res){
console.log(res);// response come from server
}
});
});
</script>
</body>
</html>
答案 1 :(得分:1)
如果您在表格中使用以下表格,则不需要修改传递的值;
<form action="myaction.php" method="POST">
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>
<tr>
<td><input name="firstname[]" /></td>
<td><input name="lastname[]" /></td>
</tr>
<tr>
<td><input name="firstname[]" /></td>
<td><input name="lastname[]" /></td>
</tr>
<tr>
<td><input name="firstname[]" /></td>
<td><input name="lastname[]" /></td>
</tr>
</table>
</form>
输入名称中包含[]
,提交表单时,您可以执行以下操作;
<?php
for ($i = 0; $i < count($_POST['firstname']); $i++)
{
$firstname = $_POST['firstname'][$i];
$lastname = $_POST['lastname'][$i];
// Do something with this
}
您可以使用它来循环数据并将信息转换为可用的格式&#34;您可以轻松访问
答案 2 :(得分:1)
我会尝试用一些例子来解释,如果这对你不够,请告诉我。
<!-- file.html -->
<form>
<select id="val_profession_id" multiple name="val_profession_id[]">
<option selected value="2">2</option>
<option selected value="3">3</option>
</select>
</form>
在您的表单上方,就像在您的HTML文件上一样。我使用了一些随机值,但这里并不重要。
<!-- file.js -->
//Get an array, all the selected values
var val = $('#val_profession_id').val();
$.ajax({
method: "POST",
url: "http://example.com/file.pp",
data: {
val_profession_id: val
}
}).then(function(res) {
//You got the server's response
console.log(res);
});
发送Ajax请求的脚本上方。您可以随时按下按钮执行它。它只读取选定的值,然后将它们发布到file.php
<?php
//file.php
var_dump($_POST);
上面应该显示如下内容:
array(1) {
["val_profession_id"]=>
array(2) {
[0]=>
string(1) "2"
[1]=>
string(1) "3"
}
}
如您所见,PHP将其作为数组获取。
请参阅jQuery.ajax
答案 3 :(得分:0)
当您将输入字段的名称设置为func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
// heading is updated for delegates only after any transition has ended
// therefore, snapshot properties are set already by the time program reaches this function
mapView.camera.heading = newHeading.magneticHeading
mapView.setCamera(mapView.camera, animated: true)
}
时,当您通过something[]
在PHP中收到它时,它将自动更改为数组。
请阅读here以获取更多信息。
一个小例子:
$_POST['something']
在PHP中然后你得到:
<form id="your_form">
<input name="something[]" value=val_1>
<input name="something[]" value=val_2>
</form>
会给你:
print_r ($_POST['something']);
您只需通过javascript提交表单:
//Array ([0] => 'val_1', [1] => 'val_2')