如何使用Ajax从select中获取值并在PHP中使用


How to get a value from select with Ajax and use in PHP

正如我在标题中所写的,我在page.php中有这部分代码,它位于子文件夹管理员中。所以页面的路径是/admin/page.php:

<select name="my_select" id="my_select" onchange="function(this.value);">
                <?php
                    include "../db/db_config.php";
                    $conn = mysql_connect($host,$user,$password)or die(mysql_error());
                    mysql_select_db($db, $conn);
                    $query="Query";
                    $res=mysql_query($query,$conn);
                    while($row=mysql_fetch_array($res)){
                        $id=$row['id'];
                        $text=$row['text'];
                        echo "<option value='$id'>$text</option>";
                        }
                    }
                ?>
              </select>
    $var = $_POST['my_select'];
    echo "I have selected $var";

我使用了一个我在网上找到的功能:

function fetch_select(val)
          {
             $.ajax({
               type: 'post',
               url: 'page.php',
               data: {
                 get_option:val
               },
               success: function (response) {
                 document.getElementById("my_select").innerHTML=response; 
               }
             });
          }

我必须做些什么才能获得$var的价值?因为我需要这个价值来构建其他东西。有可能吗?

编辑:也许我没有很好地解释我的问题。我对ajax不是很好,因为我从来没有使用过它。我有一个截止日期,所以我现在不能学习它。现在我有这样的情况:我有一个带有输入提交的选择表格。单击按钮后,我使用$_POST['yoption']并获得值。然后我做:

if($var == 1)
//a query from database
else if($var == 2)
//another different query
else
//other but no query

这是正确的。我需要更改它并在同一页中使用。我该怎么做?

您不需要执行POST就可以使用jQuery执行。

<?php
include "../db/db_config.php";
$conn = mysql_connect($host,$user,$password)or die(mysql_error());
mysql_select_db($db, $conn);
$query="Query";
$res=mysql_query($query,$conn);
?>
<select name="my_select" id="my_select">
    <?php
    while($row=mysql_fetch_array($res)){
        $id=$row['id'];
        $text=$row['text'];
        echo "<option value='$id'>$text</option>";
    }
    ?>
</select>
<span id="selected"></span>
<script>
$("#my_select").change(function() {
    $("#selected").html($("#my_select option:selected").text());
});
</script>

这将为PHP:提供选择值

<?php
include "../db/db_config.php";
$conn = mysql_connect($host,$user,$password)or die(mysql_error());
mysql_select_db($db, $conn);
$query="Query";
$res=mysql_query($query,$conn);
if (isset($_POST['my_select'])) {
    $var = $_POST['my_select'];
} else {
    $var = '';
}
?>
<form id="my_form" action="" method="POST">
    <select name="my_select" id="my_select">
        <?php
        while($row=mysql_fetch_array($res)){
            $id=$row['id'];
            $text=$row['text'];
            echo "<option value='$id'>$text</option>";
        }
        ?>
    </select>
</form>
<span id="selected">I have selected <?php echo $var; ?></span>
<script>
$("#my_select").change(function() {
    $('#my_form').submit();
});
</script>