2014-02-07 2 views
-1

Привет Я создаю сайт, используя html, css, php, mysql и javascript с небольшими бит jquery. на данный момент у меня есть 3 раскрывающиеся окна, которые динамически показывают вам варианты для примера, если я нажму английский, затем в следующем раскрывающемся списке показаны все разделы для английского языка, такие как чтение, а затем следующий будет связан с чтением, это все отлично работает ,

То, что я пытаюсь сделать, это использовать значения для каждого из этих выпадающих ящиков в запросе sql для возврата конкретных видеороликов, связанных с этими раскрывающимися списками.

Какой тип массива мне нужно использовать для $ _Post и как будет структурирован SQL-запрос, чтобы я мог вытащить всю информацию для видео.

Это код, который я в настоящее время, используя для выпадающего меню

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $("select#type").attr("disabled","disabled"); 
      $("select#category").change(function(){ 
      $("select#type").attr("disabled","disabled"); 
      $("select#type").html("<option>wait...</option>"); 
      var id = $("select#category option:selected").attr('value'); 
      $.post("select_type.php", {id:id}, function(data){ 
       $("select#type").removeAttr("disabled"); 
       $("select#type").html(data); 
      }); 
     }); 

     $("select#principle").attr("disabled","disabled"); 
      $("select#type").change(function(){ 
      $("select#principle").attr("disabled","disabled"); 
      $("select#principle").html("<option>wait...</option>"); 
      var id = $("select#type option:selected").attr('value'); 
      $.post("select_principle.php", {id:id}, function(data){ 
       $("select#principle").removeAttr("disabled"); 
       $("select#principle").html(data); 
      }); 
     }); 

     $("form#select_form").submit(function(){ 
      var cat = $("select#category option:selected").attr('value'); 
      var type = $("select#type option:selected").attr('value'); 
      var princ = $("select#principle option:selected").attr('value'); 
      if(cat>0 && type>0 && princ>0) 
      { 
       var result = $("select#principle option:selected").html(); 
       $("#result").html('your choice: '+result); 
      } 
      else 
      { 
       $("#result").html("you must choose two options!"); 
      } 
      return false; 
     }); 
    }); 
    </script> 
    </head> 
    <body> 
     <?php include "select.class.php"; ?> 
     <form id="select_form"> 
      Choose a category:<br /> 
      <select id="category"> 
       <?php echo $opt->ShowCategory(); ?> 
      </select> 
     <br /><br /> 

     Choose a type:<br /> 
     <select id="type"> 
      <option value="%">any...</option> 
     </select> 
     <br /><br /> 

     Choose a principle:<br /> 
     <select id="principle"> 
      <option value="%">any...</option> 
     </select> 
     <br /><br /> 

     <input type="submit" value="confirm" /> 
     </form> 
     <div id="result"></div> 
    </body> 
</html> 

это раздел, который работает SQL-запросов

<?php 
class SelectList 
{ 
    protected $conn; 

     public function __construct() 
     { 
      $this->DbConnect(); 
     } 

     protected function DbConnect() 
     { 
      include "db_config.php"; 
      $this->conn = mysql_connect($host,$user,$password) OR die("Unable to connect to the database"); 
      mysql_select_db($db,$this->conn) OR die("can not select the database $db"); 
      return TRUE; 
     } 

     public function ShowCategory() 
     { 
      $sql = "SELECT * FROM subject"; 
      $res = mysql_query($sql,$this->conn); 
      $category = '<option value="0">choose...</option>'; 
      while($row = mysql_fetch_array($res)) 
      { 
       $category .= '<option value="' . $row['subject_id'] . '">' . $row['description'] . '</option>'; 
      } 
      return $category; 
     } 

     public function ShowType() 
     { 
      $sql = "SELECT * FROM section WHERE subject_id=$_POST[id]"; 
      $res = mysql_query($sql,$this->conn); 
      $type = '<option value="0">choose...</option>'; 
      while($row = mysql_fetch_array($res)) 
      { 
       $type .= '<option value="' . $row['section_id'] . '">' . $row['description'] . '</option>'; 
      } 
      return $type; 
     } 

     public function ShowPrinciple() 
     { 
      $sql = "SELECT * FROM principle WHERE section_id=$_POST[id]"; 
      $res = mysql_query($sql,$this->conn); 
      $principle = '<option value="0">choose...</option>'; 
      while($row = mysql_fetch_array($res)) 
      { 
       $principle .= '<option value="' . $row['principle_id'] . '">' . $row['description'] . '</option>'; 
      } 
      return $principle; 
     } 
} 

$opt = new SelectList(); 
?> 
+0

Почему голосование? – WhySoSerious

+0

Я предполагаю, что кто-то проголосовал, потому что вы не предоставили никакого кода, чтобы проиллюстрировать ваш вопрос/проблему. – Brice

+0

1) Примите варианты и получите доступ к ним с суперглобальным массивом '$ _POST', 2) Уберите все входные данные пользователя, 3) Создайте запрос, 4) Выполните его. С какой именно стороны вы сталкиваетесь? –

ответ

0

Вот что-то основное:

HTML - создать интерфейс для сбора ваших данных

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> (put in head) 

<div class='nameinput'>Name: <input type=text /></div> 
<div class='ageinput'>Age: <input type=text /></div> 
<button id = 'clickme'>CLICK</button> 

JS - собрать данные и представить PHP с AJAX

$('#clickme').click(function(){ 
    var username = $('.nameinput').val(); 
    var userage = $('.ageinput').val(); 
    $.ajax({ 
      url: 'nameofphpfile.php', 
     type: POST, 
     data: { name: username, 
       age: userage }, 
    dataType: 'json' 
      }) 
      .done(function(){ alert('Great job!') }) 
      .fail(function(){ alert('The server does not like you!) }); 
           }); 

(NB: более трудная часть для меня было понимание обратных вызовов - я перешел на «новых» форм .done,. неудача, всегда).

PHP - grab the data passed from client with ajax, and put in the db. 

<!php 
$name = $_POST['username']; 
$age = $_POST['userage']; 

$host  = "xxxxx"; 
$user  = "xxxxx"; 
$password = "xxxxx"; 
$dbname  = "xxxxx"; 

$cxn = mysqli_connect($host,$user,$password,$dbname); 
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();} 

$query = " INSERT INTO nameofyourtable 
    (name, age) 
    VALUES 
    ('$name', '$age') " ; 
$result = mysqli_query($cxn, $query) or die ("could not query database 1"); 
?> 

Подход отличается, если вы хотите читать данные, но это другой вопрос.

Удачи!

Я прошел через это около года назад, поэтому я знаю, что вы переживаете.

Смежные вопросы