2012-03-09 4 views
2

Я пробовал этот код для получения выпадающего списка, заполненного базой данных MySQL, и если выбрана определенная категория, появляется всплывающее окно. Я думал, что этот код был правильным, и я думаю, что нет. Первое выпадающее меню даже не заполняется из базы данных, и оно просто заканчивается пустым, =. Я долгое время занимался этим без особых усилий.динамическое падение с проблемой mysql

Вот что я пытаюсь повторить ... http://www.blueicestudios.com/chained-select-boxes-using-php-mysql-ajax/

Вот что там до сих пор.

Главная форма:

<?php include ('connect.php'); ?> 
<?php include('func.php'); ?> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"><!--mce:0--></script> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#wait_1').hide(); 
    $('#drop_1').change(function(){ 
     $('#wait_1').show(); 
     $('#result_1').hide(); 
     $.get("func.php", { 
     func: "drop_1", 
     drop_var: $('#drop_1').val() 
     }, function(response){ 
     $('#result_1').fadeOut(); 
     setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400); 
     }); 
     return false; 
    }); 
}); 

function finishAjax(id, response) { 
    $('#wait_1').hide(); 
    $('#'+id).html(unescape(response)); 
    $('#'+id).fadeIn(); 
} 
</script> 

<form action="" method="post"> 

<select id="drop_1" name="drop_1"> 
<option disabled="disabled" selected="selected"> Select Main Category</option> 
</select> 
<span id="wait_1" style="display: none;"> 
<img src="ajax-loader.gif" alt="Please Wait"> 
</span> 
<span id="result_1" style="display: none;"></span> 
</form> 

Вот файл func.php:

<?php 

function getTierOne() 
{ 
    require_once('connect.php'); 
    $result = mysql_query("SELECT category FROM subcats") 
    or die(mysql_error()); 
    while($tier = mysql_fetch_array($result)) 
    { 
     $catitle = $tier['category']; 
    echo "<option> $catitle </option>" ; 
    } 
    mysql_close(); 
    } 

    if(isset($_GET['func'])&& $_GET['func'] == 'drop_1') { 
     drop_1($_GET['drop_var']); 
     } 
     function drop_1($drop_var) 
     { 
     require_once('connect.php'); 
     $result = mysql_query("SELECT * FROM subcats WHERE category='$drop_var'") 
     or die(mysql_error()); 

     echo ' 
     <select id="subcat" name="subcat"> 
     <option disabled="disabled" selected="selected" value=" ">Choose one</option> 
     <option value="'.$drop_2['subcat'].'">'.$drop_2['subcat'].'</option> 
     </select> 
     '; 
     mysql_close(); 

     echo ' 
     <input name="submit" type="submit" value="Submit">'; 
     } 
?> 
+0

$ ('#') result_1 скрыть, то Fadeout ..is он должен снова отобразить? – charlietfl

+0

Я просто не понимаю, почему это не показывает в первую очередь ... я не понимаю ... –

+0

Трудно следить за тем, что вы действительно пытаетесь сделать ... быть проще, если бы это можно было увидеть в браузер, posta link, если возможно – charlietfl

ответ

0

Если кто-то хочет знать ответ, я понял это.

Изменить это.

{ 
     $catitle = $tier['category']; 
    echo "<option> $catitle </option>" ; 
    } 

Для этого

while($tier = mysql_fetch_array($catresult)) 

     { 
      echo '<option value="'.$tier['category'].'">'.$tier['category'].'</option>'; 
     } 
0

Вы уверены, что "$_GET['func']" имеет значение?

Прошел ли код if(isset($_GET['func'])&& $_GET['func'] == 'drop_1')?

любые проблемы с подключением/запросом MySQL?

Что вы пробовали до сих пор?

$.get("func.php", { 
    func: "drop_1", 
    drop_var: $('#drop_1').val() 
    } 

func.php находится в той же директории, что и ваш html? любые ошибки в firebug?

+0

Код проходит мимо этой строки, и я не уверен, что соединение MYSQL прочное. –

+0

любые ошибки на firebug? – rax313

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