从下拉列表中获取php变量,无需提交页面

时间:2018-11-24 15:28:46

标签: php ajax

我试图从下拉菜单中获取一个值,并将其作为php变量传递并回显(在同一页面上)。

该下拉列表显示用户的名称,但是选择他们要回显的用户名。如果可以成功回显该变量,则可以使用该变量执行其他任务。

我已经使用jquery和ajax来获取变量,而没有提交页面。但是我无法获取php变量。

我已经阅读并使用了几个示例,但是以某种方式我的代码无法正常工作。 任何人都可以建议错误在哪里吗?

这是我的代码:

Test2.php

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table>
    <tr>
        <td>
            <select name="user" id="user" >
                  <option disabled selected value> - Select User - </option>
                  <?php 
                    $sql_select = mysqli_query($conn,"SELECT username, surname, fname FROM user WHERE v_flag != 0 ORDER BY surname ASC ");
                        while ($result = mysqli_fetch_assoc($sql_select)){
                            $name = ($result['surname']. ', '.$result['fname']);
                            echo '<option value = " '.$result['username']. '">'.$name.'</option>';
                        }
                    ?>                          
            </select>
        </td>                   
    </tr>
</table>        
<script type="text/javascript">
$(document).ready(function() {
  $("#user").change(function() {        
  var user = $(this).val();
      $.ajax({
        url:"test2.php",
        data:{username : user},
        type:'POST',
        success:function(response) {
            $("#usermame").html(response);
        }
      });
  });
}); 
</script>

    <?php
    if (isset($_POST['username'])){
        $username = $_POST['username'];     
        if (!empty($username)){
            echo 'You have selected user: '.$username ;
        }
    }
    ?>

2 个答案:

答案 0 :(得分:1)

form

答案 1 :(得分:0)

您的成功处理程序正在以ID用户名的html元素将请求内容打印在页面上不存在(至少在此代码段中不存在)

success:function(response) {
        $("#usermame").html(response);
    }

尝试向其他文件发出POST请求,因为在您的情况下,打印的内容将再次包含select(和db请求)。

相关问题