我有一个下拉框和一个文本框。基于我的下拉选择文本框以及数据库值进行检索。实际上,它工作正常,没有任何问题。但是我的问题是数据库在特定的下拉选择中具有两个或多个文本框值。因此,我想如果多个文本框值进入相同的下拉选择,则它将在文本框中显示所有值,并以逗号(,)分隔。任何帮助表示赞赏。
以下是我使用的代码供您参考:-
<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">
jQuery:-
<script 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 id1234 = response[i]['id123'];
var name1234 = response[i]['name123'];
$("#pnum").val(name1234);
}
}
});
});
});
</script>
Ajax页面:-
<?php
include('config.php');
// Check connection
if (!$db) {
die("Connection failed: " . mysqli_connect_error());
}
$departid = $_POST['depart'];
$sql = "SELECT Emp_Id,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);
}
echo json_encode($users_arr);
?>
我的样本数据:-
Category Mobile_Number
IT 9629292929
IT 8888888888
IT 5623566666
如果我选择下拉类别“ IT”,那么我希望我的文本框Mobile_Number输出如下:-
9629292929,8888888888,5623566666
答案 0 :(得分:0)
您可以简单地遍历json_encode()
d数组。
然后使用PHP的内置函数implode()
将字符串中的数组值连接/内插到逗号之间$arr = json_decode($yourArray);
$mobiles = array();
if (! empty($arr)) {
foreach ($arr as $elem) {
$mobiles[] = $elem['Mobile_Number'];
}
}
$mobileStr = ! empty($mobiles) ? implode(',', $mobiles) : '';
现在,在文本框中将此$mobileStr
用作value="$mobileStr"
。
答案 1 :(得分:0)
您可以使用javascript的join功能。请参考以下帖子。 https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_join