簡體   English   中英

如何從同一頁面上的選擇框中獲取值

[英]How can I get a value from a select box on the same page

我正在嘗試使用PHP和Javascript來創建一個類別選擇器框。 我已經進行了設置,以便Javascript按順序顯示所選步驟,並在取消選擇后隱藏。

但是,我無法弄清楚如何選擇選項“id”或“value”並將其傳遞給下一行。 (一旦傳遞了所選的id或值,下一個列表就可以加載)

這是我的代碼,提前感謝您的期待。 如果我做錯了或者沒有正確的方法,請求。 讓我知道和/或告訴我正確的方法。

<?php
include($_SERVER["DOCUMENT_ROOT"] . "/inc/header.php");
include($_SERVER["DOCUMENT_ROOT"] . "/inc/search.php");
?>

<div class="content">
<form>
    <select name="categorys" class="newcatediv" id="step1" size="3" onchange="mine(this.value)">
        <?php 

        $result_c = mysqli_query($con,"SELECT * FROM categories ORDER BY category_name ASC");

        while($row = mysqli_fetch_array($result_c))
        {
            echo '<option class="mso" id="'. $row['category_nameid'] .'"value="';
            echo $row['category_nameid'] .'">' . $row['category_name'] . '</option>';
        } 

         ?>
    </select>

    <select name="sections" class="newcatediv" id="step2" size="3" onchange="mine2(this.value)">
        <?php 

        $var_c = ????

        $result_s = mysqli_query($con,"SELECT * FROM sections WHERE category_nameid='$var_c' ORDER BY section_name ASC");

        while($row = mysqli_fetch_array($result_s))
        {
            echo '<option class="mso" id="'. $row['section_nameid'] .'"value="';
            echo $row['section_nameid'] .'">' . $row['section_name'] . '</option>';
        } 

        ?>
    </select>

    <select name="subsections" class="newcatediv" id="step3" size="3">
        <?php 

        $var_s = ????

        $result_ss = mysqli_query($con,"SELECT * FROM subsections WHERE section_nameid='$var_s' ORDER BY subsection_name ASC");

        while($row = mysqli_fetch_array($result_ss))
        {
            echo '<option class="mso" id="'. $row['subsection_nameid'] .'"value="';    
            echo $row['subsection_nameid'] .'">' . $row['subsection_name'] . '</option>';
        } 

        ?>
    </select>

</form>
</div>

<?php
include($_SERVER["DOCUMENT_ROOT"] . "/inc/footer.php");
    ?>

默認情況下,選擇<select>的第一個選項,因此這將起作用:

<select name="categorys" class="newcatediv" id="step1" size="3" onchange="mine(this.value)">
    <?php 

    $result_c = mysqli_query($con,"SELECT * FROM categories ORDER BY category_name ASC");

    $var_c = null;
    while($row = mysqli_fetch_array($result_c))
    {            
        if($var_c == null) $var_c = $row['category_nameid'];
        echo '<option class="mso" id="'. $row['category_nameid'] .'"value="';
        echo $row['category_nameid'] .'">' . $row['category_name'] . '</option>';            
    } 

     ?>
</select>

<select name="sections" class="newcatediv" id="step2" size="3" onchange="mine2(this.value)">
    <?php         

    $result_s = mysqli_query($con,"SELECT * FROM sections WHERE category_nameid='$var_c' ORDER BY section_name ASC");

    $var_s = null;
    while($row = mysqli_fetch_array($result_s))
    {
        if($var_s == null) $var_s = $row['section_nameid'];
        echo '<option class="mso" id="'. $row['section_nameid'] .'"value="';
        echo $row['section_nameid'] .'">' . $row['section_name'] . '</option>';
    } 

    ?>
</select>

<select name="subsections" class="newcatediv" id="step3" size="3">
    <?php         

    $result_ss = mysqli_query($con,"SELECT * FROM subsections WHERE section_nameid='$var_s' ORDER BY subsection_name ASC");

    while($row = mysqli_fetch_array($result_ss))
    {
        echo '<option class="mso" id="'. $row['subsection_nameid'] .'"value="';    
        echo $row['subsection_nameid'] .'">' . $row['subsection_name'] . '</option>';
    } 

    ?>
</select>

干杯

嗨:)你不能使用Php處理同一頁面。 但你可以用這個jquery做到這一點,包括3頁。 第一頁:

$(document).ready(function(){
$("#step1").change(function(){
    var id=$("#step1").val();

    alert(id); //shouts the value of the selected step1
    $.post("select_step2.php", {id:id}, function(data){
        $("#step2").empty();
        $("#step2").append(data);

                    $("#step2").change(function(){
                         var id2=$("#step2").val();
                         alert(id2); //shouts the value of the selected step2

                         $.post("select_step3.php", {id:id2}, function(data){
                             $("#step3").empty();
                             $("#step3").append(data);
                          });  
                   });
        });
   });
  });

上面的代碼用於jquery,您可以在其中調用依賴於每個步驟的每個數據。

<?php
include($_SERVER["DOCUMENT_ROOT"] . "/inc/header.php");
include($_SERVER["DOCUMENT_ROOT"] . "/inc/search.php");
?>


<form>
 First Step: <select name="categorys" class="newcatediv" id="step1" size="3">
    <?php 

    $result_c = mysqli_query($con,"SELECT * FROM categories ORDER BY category_name ASC");

    while($row = mysqli_fetch_array($result_c))
    {
        echo '<option class="mso" id="'. $row['category_nameid'] .'"value="';
        echo $row['category_nameid'] .'">' . $row['category_name'] . '</option>';
    } 

     ?>
</select>

Second Step: <select name="sections" class="newcatediv" id="step2" size="3"></select>

Third Step: <select name="subsections" class="newcatediv" id="step3" size="3"></select>

您的代碼select_step2.php:

<?php

 //Please include the connection to your database here :)

 $var_c = trim($_POST['id']);

     $section = "";
    $result_s = mysqli_query($con,"SELECT * FROM sections WHERE category_nameid='$var_c' ORDER BY section_name ASC");

    while($row = mysqli_fetch_array($result_s))
    {
        $section.="<option value='$row[section_nameid]'>$row[section_name]</option>";
    } 
    echo $section;

?>

select_step3.php的代碼:

<?php 
  //database connection here
   $var_s = trim($_POST['id']);

    $subsection= "";
    $result_ss = mysqli_query($con,"SELECT * FROM subsections WHERE section_nameid='$var_s' ORDER BY subsection_name ASC");

    while($row = mysqli_fetch_array($result_ss))
    {
        $subsection.="<option value='$row[subsection_nameid]'>$row[subsection_name]</option>";
    } 
   echo $subsection;
 ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM