使用 javascript var 通过 php mysql 查询数据

using javascript var to query data with php mysql

对于这种情况,我找不到任何解决方案,当 id 用户文本值更改时,名称和地址将被填充。但它 return php 查询中的一些错误。

抱歉,如果此 post 重复,因为我找不到适合我的情况的解决方案。

这里是html形式

    <form id="frm_add_bill" name="frm_add_bill" >

<label >id user</label>                                          
<input type="text" onchange="getplg()"  id="kdp" name="kdp">                    
<label >user name</label>

<input type="text" maxlength="25" name="name" id="name"  readonly>

<label >user address</label>

<input type="text" name="address" id="address"  readonly>
</form>

此处javascript和php代码

<script type="text/javascript">  function getplg(){

                var kdpe = $('#kdp').value;

            $.ajax({
                type: 'post',
                url: '',
                data: kdpe,
                timeout: 50000
            });

            }</script>

            <?php
            if (isset($_POST['kdpe'])) {

                $kpde=htmlspecialchars($_POST['kdpe']);


            $amxz=mysql_query("SELECT name, address from tbl_user where id_user='$kpde'");
            $camqz=mysql_fetch_array($amxz);

            echo "<script>document.write(fillem());</script>";

            }
            ?>

            <script type="text/javascript">
            function fillem(){

            document.frm_add_bill.name.value=<?php echo $camqz['0'];?>;
            document.frm_add_bill.address.value=<?php echo $camqz['1'];?>;

            }
            </script>

您必须使用 onkeydownonkeyuponpasteoninput 事件,而不是 onchange 事件。

您应该像这样传递数据:

$.ajax({name:value, name:value, ... })
function getplg(){
        try{
            var kdpe = $('#kdp').val();
            console.log("here");
            $.ajax({
                method: 'post',
                url: '',
                data: {val:kdpe}}).done(function(data){
                    console.log(data);
                    console.log("hello");
            });
            }catch(Exception){
                alert("error");
            }
        }
    </script>

试试这个。

首先将您的 ajax 函数更改为:

function getplg()
{ 
    var kdpe = $('#kdp').val(); 
    $.ajax({ 
    type: 'post', 
    url: '', 
    data: "kdpe="+kdpe, 
    timeout: 50000 
    }); 
}

这里需要使用param.

传入"kdpe="+kdpe

并在 if (isset($_POST['kdpe'])) 检查中移动 fillem()

<?php 
if (isset($_POST['kdpe'])) {
$kpde=htmlspecialchars($_POST['kdpe']);

$amxz=mysql_query("SELECT name, address from tbl_user where id_user='$kpde'");

$camqz=mysql_fetch_array($amxz);

echo "<script>document.write(fillem());</script>"; 
?>

<script>
function fillem(){
   document.frm_add_bill.name.value=<?php echo $camqz['0'];?>;
   document.frm_add_bill.address.value=<?php echo $camqz['1'];?>; 
}
</script>
<?php
} 
?>

旁注:

停止使用 mysql_* 因为它已弃用并在 PHP 中关闭 7. 使用 mysqli_*PDO

我找到了这个案例的答案

这段js代码在标签内使用

<script type="text/javascript">

        $(document).ready(function()
        {

         $("#kdp").blur(function() {


          var idkategori = $(this).val();
          if (idkategori != "")
          {

           $.ajax({
            type:"post",
            url:"getsubkat.php",
            data:"id="+ idkategori,
            success: function(data){
             $("#name").html(data);
            }
           });
          }
         });
        });
        </script>

和这个html

<div class="form-group">
  <label for="inputEmail3" class="col-sm-2 control-label">
    User Code
  </label>
  <div class="col-sm-10">
    <input type="text" class="form-control" id="kpd" name="kdp"  >
  </div>
</div>
<div id="name">

</div>

和php代码与js和html不同的页面(getsubkat.php)

    <?php
include ("components/inc/connection.php");
$id=$_POST['id'];
$query=mysql_query("SELECT name, address from tbl_user where user_code='".$id."'");

 $data=mysql_fetch_array($query);

echo"<div class='form-group'>";
    echo"<label for='inputEmail3' class='col-sm-2 control-label'>user name </label>";
echo"<div class='col-sm-10'>";
    echo"<input type='text' class='form-control' value='$data[user_name]'  readonly>";
echo"</div>";
echo"</div>";

echo"<div class='form-group'>";
    echo"<label for='inputEmail3' class='col-sm-2 control-label'>user address</label>";
echo"<div class='col-sm-10'>";
    echo"<input type='text' class='form-control' value='$data[user_address]'  readonly>";
echo"</div>";
echo"</div>";

?>