jquery ajax发帖给自己不工作

时间:2018-06-16 09:04:53

标签: javascript php jquery

我从更改时使用jquery从下拉列表获取值,我使用ajax发布到self,但我无法回显发布的变量。

    <form>
                <label>Select Doctor:</label>
                <select class="docdrop">
                <option value="">Choose</option>
                <option value = "123">doca</option>
                <option value = "456" >docb</option>
                </select>
              </form>

<script>
 $(document).ready(function(){
    $("select.docdrop").change(function(){
        var d_Id = $(this).val();
        if(d_Id!="")
        {
            $.ajax({
                type: "POST",
                url: "<?php echo $_SERVER['PHP_SELF'];?>",
                data: {d_id1 : d_Id}, //using 'd_id1' did not make a change
                 success: function(){
                     alert(d_Id]);
                }
            });
        }
    });
});
</script>


//php code in same page

        <?php
              if(isset($_POST['d_id1']))
                 $d_Id = $_POST['d_id1'];
             ?>
    <p><?php  echo $d_Id; ?></p>  

我收到成功警报但是,我无法回应发布的变量。我不想使用serialize()或发布整个表单。只是d_Id我在jquery中获得了

3 个答案:

答案 0 :(得分:0)

php代码在页面加载时执行一次,因此不会创建变量$ d_Id和$ d_Id1,因此它不会显示任何值。
ajax执行时没有页面刷新,并且所有代码都在侧面成功执行而没有任何错误。

答案 1 :(得分:0)

success: function(data){
   alert(data);
}

您将提醒从后端发送的数据,即您的php部分回复,在您的情况下,这将是<p><?php echo $d_Id; ?></p>的结果,如果您只需要选择没有段落标记的$ d_id将代码更改为{ {1}}。当然,您可能更喜欢使用JSON作为后端的输出,然后在每个实例<?php echo $d_Id; ?>的{​​{1}}回调中解析它,或者使用数据类型&#39; json&#39;在你的AJAX请求中。

答案 2 :(得分:-1)

如果你想要,你可以这样做而不用jQuery:

<?php 
  $d_id1 ="";      
  if(isset($_POST['d_id1'])){
     $d_Id = $_POST['d_id1'];
     echo $d_Id;
     exit;
    }
 ?>
  <!DOCTYPE html>
  <html>
   <head>
     <title></title>
     <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>        
   </head>
     <body>
        <form>
            <label>Select Doctor:</label>
            <select class="docdrop" >
            <option value="">Choose</option>
            <option value = "123">doca</option>
            <option value = "456" >docb</option>
            </select>
         </form>
    <script>
      $(document).ready(function(){
         $("select.docdrop").change(function(){
           var d_Id = $(this).val();
             if(d_Id!="")
                {
                  $.ajax({
                  type: "POST",
                  url: "<?php echo $_SERVER['PHP_SELF'];?>",
                  data: {d_id1 : d_Id}, 
                  success: function(data){
                  d_id1 = data;
                  document.getElementById('name').innerHTML = d_id1;
                  console.log(data);

               }
            });
          }
       });
    });
    </script>
   <p id ="name"><?php echo $d_id1;?></p>
   </body>
   </html>