我试图从数据库中读取值。当我点击selectpicker并根据选择选择器的EmpId时,我将从表中读取名称和sal,并希望在textarea中显示名称和sal。
我只做到了这一点: 以下是HTML代码
<div class="form-group">
<!--<span class="input-group-addon icon-color"><i class="glyphicon glyphicon-home"></i></span>-->
<small>Employee Id</small>
<select class="form-control selectpicker" autocomplete="on" data-live-search="true" id="IEmpId" name="NEmpId" tabindex="1" >
<option disabled selected>--- Employee Id --- </option>
<?php echo fxn_empId(); ?>
</select>
</div>
</div>
<div class="col-xs-12 col-sm-4 col-md-4">
<div class="form-group">
<small>Employee Name</small>
<input type="text" name="NEmpName" id="IEmpName" class="form-control" placeholder="Employee Name">
</div>
</div>
<div class="col-xs-12 col-sm-4 col-md-4">
<div class="form-group">
<small>Basic Salary</small>
<input type="text" name="NBasicSal" id="IBasicSal" class="form-control" placeholder="Basic Salary">
</div>
</div>
以下是JS代码
var lcl_switchID = "1";
$.ajax({
url :"script_emp-timiesheet.php",
method :"POST",
data :{lEmpId:lEmpId, data:lcl_switchID},
success:function(data){
if(data=="ok"){
//fxn_EnableCLR();
}else{
alert(data);
}
}
});
以下是PHP的代码
if(isset($_POST["lEmpId"])){
$lEmpId = $_POST["lEmpId"];
$Lquery = "SELECT CONCAT(FName,' ', LName) as Name FROM tblempregistration WHERE EmpId = '$LDesgId'";
$query_result = mysqli_query($conn, $Lquery);
if(mysqli_num_rows($query_result) > 0){
while($row = mysqli_fetch_array($Lquery_result)){
echo '<input type="text" name="NEmpName" value=' .$row[''
}
我不知道接下来要做什么......
有什么建议吗?
答案 0 :(得分:1)
你正在回应一些ajax请求响应的HTML。但是除了回显返回的字符串之外,你什么都不做。但是,页面上已存在具有相同名称的文本框,因此可以再次返回文本框。您真正想要做的是返回数据值本身,然后使用JavaScript将值放入页面中相应的现有字段。
我认为你可以这样做:
1)在PHP端,返回编码为JSON的数据库行:
if ($row = mysqli_fetch_array($Lquery_result)) {
echo json_encode($row);
}
2)在客户端,以JSON的身份接收ajax响应,提取值并将它们放入HTML中的适当位置。在这种情况下,您希望将它们作为值添加到文本框中:
var lcl_switchID = "1";
$.ajax({
url :"script_emp-timiesheet.php",
method :"POST",
data :{lEmpId:lEmpId, data:lcl_switchID},
dataType: "json", //tell jquery to expect JSON back from the server
success:function(data){
$("#IEmpName").val(data.FName);
}
});
您可以为其他字段执行类似操作。我不知道他们的确切名字所以不能给出一个确切的例子。
N.B。如果客户端代码不起作用,因为它找不到正确的字段,请尝试调试以查看返回数据的实际结构是什么样的。您可以在“success”函数中编写console.log(JSON.stringify(data));
,然后使用浏览器控制台检查实际数据结构,然后调整jQuery代码以相应地读取数据字段。