[英]Display textbox multiple row values
我有一個Category
下拉選擇和Mobile_Number
文本字段。 根據我的類別選擇,“移動”文本框將獲取數據庫值。
我的問題是,有時同一類別具有兩個或多個“移動”文本框值。 在這種情況下,我要被顯示在由逗號(分離的單個文本框的所有移動數值,
)。
樣本表數據
Mobile_Number Category
123 IT
345 IT
456 IT
在這種情況下,當選擇“ IT”類別時,我想在文本框中顯示輸出,如下所示:-
123,345,456
我的工作代碼:
Ajax頁面代碼:
$departid = $_POST['depart']; // department id
$sql = "SELECT Mobile_Number FROM admin_panel WHERE Category=".$departid;
$result = mysqli_query($db, $sql);
$users_arr = array();
while ($row = mysqli_fetch_array($result))
{
//$userid = $row['Emp_Id'];
$name = $row['Mobile_Number'];
//$users_arr[] = array("id123" => $userid, "name123" => $name);
$users_arr[] = array("name123" => $name);
}
echo json_encode($users_arr);
下拉菜單和文本框
<select name="cat" id="cat">
<option disabled selected value> -- select an option -- </option>
<option value="1">Stencil Team</option>
<option value="2">Tooling Team</option>
<option value="3">IT</option>
<option value="4">Manager</option>
</select>
<input name="phoneNumber" id="pnum" type="text">
JavaScript:
$(document).ready(function(){
$("#cat").change(function(){
var deptid = $(this).val();
$.ajax({
url: 'ajaxdropdown.php',
type: 'post',
data: { depart: deptid },
dataType: 'json',
success: function(response) {
var len = response.length;
$("#pnum").empty();
for (var i = 0; i<len; i++) {
var name1234 = response[i]['name123'];
$("#pnum").val(name1234);
}
}
});
});
});
您的success
功能必須修改:
function(response){
var len = response.length;
var name1234 = "";
$("#pnum").empty();
for( var i = 0; i<len; i++){
name1234 += (name1234.length < 1) ? response[i]['name123'] : ',' + response[i]['name123'];
}
$("#pnum").val(name1234);
}
您可以使用map()
構建返回的name123
值的數組,然后join()
其連接在一起,然后再將其設置為輸入的val()
。 像這樣:
success: function(response) {
var names = response.map(function() {
return this.name123;
});
$("#pnum").val(names.join(',');
}
您無需在AJAX頁面代碼中執行while循環,您可以在查詢中使用GROUP_CONCAT和GROUP BY來分隔多個移動電話號碼逗號。
檢查下面的AJAX頁面代碼
<?php
$departid = $_POST['depart']; // department id
$sql = "SELECT GROUP_CONCAT(Mobile_Number) AS mob_number FROM admin_panel WHERE
Category='".$departid."' GROUP BY Category";
$result = mysqli_query($db,$sql);
$row = mysql_fetch_row($result);
$name = $row[0];
echo json_encode($name);
?>
根據此代碼的輸出,您也不需要Java語言中的For循環。 您可以將AJAX的響應設置為phoneNumber字段。
JavaScript代碼
$(document).ready(function(){
$("#cat").change(function(){
var deptid = $(this).val();
$.ajax({
url: 'ajaxdropdown.php',
type: 'post',
data: { depart: deptid },
dataType: 'json',
success: function(response) {
$("#pnum").val(response);
}
});
});
});
我希望這可以對您有所幫助(PHP):
$numbers = [];
while ($row = mysqli_fetch_array($result)) {
$numbers[] = $row['Mobile_Number'];
}
echo json_encode(implode(', ',$numbers));
而這對js:
success: function(response) {
$("#pnum").empty().val(response);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.