php mysql中的ajax数据响应始终为0

我想通过ajax php将一些数据从mysql加载到div。自动递增的 id 字段始终为零。


我曾尝试使用 get、post 等,但都没有工作


<script>

  $(document).ready(function(){


   $(document).on('click', '#getUser', function(e){


    e.preventDefault();


    var uid = $(this).data("customer_id");   // it will get id of clicked row


    $('#txtHint').html(''); // leave it blank before ajax call

    $('#mySidenav').show();      // load ajax loader


    $.ajax({

      url: 'getCustomerDetails.php',

      type: 'GET',

      data: 'customer_id='+uid,

      dataType: 'html'

    })

    .done(function(data){

      console.log(data);  

      $('#txtHint').html('');    

      $('#txtHint').html(data); // load response 

      $('#modal-loader').hide();      // hide ajax loader 

    })

    .fail(function(){

      $('#txtHint').html('<i class="glyphicon glyphicon-info-sign"></i> Something went wrong, Please try again...');

      $('#modal-loader').hide();

    });


  });


 });


</script>



        <?php


include_once('../../config/dbconfig.php');



    if (isset($_REQUEST['customer_id'])) {


        $id = intval($_REQUEST['customer_id']);

        $query = "SELECT * FROM customers WHERE customer_id=:id";

        $stmt = $pdo->prepare( $query );

        $stmt->execute(array(':id'=>$id));

        $row=$stmt->setFetchMode(PDO::FETCH_ASSOC);



        ?>

        <div class="row">

            <div class="col-md-1">

            <div class="col-md-4" >

                <?php echo $row['first_name'];?>

            </div>

            <div class="col-md-6">


            </div>

        </div>

    </div>



    <?php echo $id;?><br/>



<?php

}


?>

结果不回显 firs_name 因为 $id 始终为 0。我想在完成后获取个人 $id(auto_increment) 它应该显示用户记录


四季花海
浏览 147回答 2
2回答

holdtom

从从数据库调试您的实际结果开始。if (isset($_REQUEST['customer_id'])) {&nbsp; &nbsp; &nbsp; &nbsp; $id = intval($_REQUEST['customer_id']);&nbsp; &nbsp; &nbsp; &nbsp; $query = "SELECT * FROM customers WHERE customer_id=:id";&nbsp; &nbsp; &nbsp; &nbsp; $stmt = $pdo->prepare( $query );&nbsp; &nbsp; &nbsp; &nbsp; $stmt->execute(array(':id'=>$id));&nbsp; &nbsp; &nbsp; &nbsp; $row=$stmt->setFetchMode(PDO::FETCH_ASSOC);您不是在检查错误。两个建议:1) 您正在使用<?php echo $row['first_name'];?>. 如果您检查了结果集,您会发现其中有什么问题。只需使用 print_r() 等将结果输出到(错误命名的)$row 变量中。我相信你会看到哪里出了问题。2) 我强烈建议反对使用 $_REQUEST。它很懒惰而且容易出错。您知道“customer_id”从何而来吗?会议?曲奇饼?邮政?还是得到?如果您通过 GET 传递信息 => 使用 GET

大话西游666

我假设这customer_id是您数据库中的唯一键,并且数据库中的每个 id 只返回一行。那么,如何正确使用 PDO 语句:$sql = "SELECT * FROM customers WHERE customer_id=:id";//Prepare your SELECT statement.$statement = $pdo->prepare($sql);//The Primary Key of the row that we want to select.$id = intval($_REQUEST['customer_id']);//I highly recomment not to use $_REQUEST, use $_GET or even better $_POST//Bind our value to the paramater :id.$statement->bindValue(':id', $id);//Execute our SELECT statement.$statement->execute();//Fetch the row.$row = $statement->fetch(PDO::FETCH_ASSOC);//If $row is FALSE, then no row was returned.if($row === false){&nbsp; &nbsp; echo $id . ' not found!';} else{&nbsp; &nbsp; echo 'Found: ' . $row['first_name'];}编辑 另外,像这样改变你的ajax请求:$.ajax({&nbsp; url: 'getCustomerDetails.php',&nbsp; type: 'POST',&nbsp; data: {customer_id:uid}})
打开App,查看更多内容
随时随地看视频慕课网APP