[英]Post An Array input to PHP
我正在嘗試通過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();
我不知道數組將通過HTML傳遞給控制器函數時會發生什么,但是至少我可以告訴您如何將數據從HTML傳遞給控制器函數。
HTML代碼必須是這樣的:
<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>
在PHP方面:-
<?php
echo "<pre/>";print_r($_POST['val_profession_id']);
// print value and then do further code what you want
例如,如果表中具有以下格式,則無需修改要傳遞的值。
<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
}
您可以使用它來循環數據並將信息轉換為可以輕松訪問的“可用格式”
我將嘗試通過一些示例進行說明,如果您還不夠,請告訴我。
<!-- 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將其作為數組獲取。
當您將輸入字段的名稱設置為something[]
時,當您通過$_POST['something']
在PHP中收到輸入字段時,它將自動更改為數組。 在這里閱讀更多信息。
一個小例子:
<form id="your_form">
<input name="something[]" value=val_1>
<input name="something[]" value=val_2>
</form>
在PHP中,您將得到:
print_r ($_POST['something']);
會給你:
//Array ([0] => 'val_1', [1] => 'val_2')
您只需通過javascript提交表單即可:
document.getElementById('your_form').submit ();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.