如何在diff textareas中显示php获取的值?

时间:2017-08-15 14:26:22

标签: javascript php jquery html bootstrap-4

我试图从数据库中读取值。当我点击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[''                                                           
                                                }

我不知道接下来要做什么......

有什么建议吗?

1 个答案:

答案 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代码以相应地读取数据字段。