简体   繁体   中英

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

As I wrote in the title I have this part of code in page page.php that is in a subfolder admin. So the path of page is ../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";

I use a function that I have found on internet:

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

What I have to do to take value in $var? Because I need this value to build other things. Is it possible?

EDIT: Probably I don't explain very well my problem. I don't have very good with ajax because I never use it. I have a deadline so I can't study it now. Now I have this situation: I have a select-form with an input submit. After click on the button I use $_POST['myoption'] and I get the value. Then I do it:

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

This work correctely. I need to change it and use in the same page. How can I do the same?

You don't to do a POST to do this you can do it with 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>

This will give the select value to 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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM