2014-01-07 44 views
0

我正在尝试使用PHP和Javascript来创建类别选择器框。 我已经设置好了,这样Javascript会按照被选择的顺序显示步骤,并在取消选择后隐藏。如何从同一页上的选择框中获取值

但是,我不知道如何将选定的选项“ID”或“值”,并将其传递到下一行。 (一旦选定的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"); 
    ?> 

回答

1

默认情况下,在<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> 

干杯

+0

感谢您的评论,但它仍然不加载正确的SQL查询。它回来了一个空白的声明。 –

1

嗨:)你不能使用流程,在同一页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; 
?> 
相关问题