PHP и с чем его едят....

Glu4it

Member
Нужна помощь:
Есть таблица categories(поля id, title) и subcat(поля id,cat,title).
Нужно сделать чтобы при выборе категории, выводились соответствующие подкатигории в выпадающем списке.
Вот как здесь:
PHP:
<label>Категория:<font style="color:red">*</font> <br></label> 
<select name="cat">
              <option value="0" > Выберите категорию </option>
<?php
				 $db = mysql_connect ("localhost","admin","280565");
				 mysql_query("SET character_set_results='utf8'");
        		 mysql_select_db ("bc",$db);
				 $result = mysql_query ("SELECT name,id FROM categories ",$db);


if (!$result)
{
echo "<p> Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>;";	
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);
do
{
printf("<option value='%s'>%s</option>",$myrow["id"],$myrow["name"]);

}
while ($myrow = mysql_fetch_array($result));
}

else
{
echo "<p> В таблице нет записей.</p>";	
exit();
}
			

     print('                       
                                </select>
</p>    
<p>
<label>Подкатегория:<font style="color:red">*</font> <br></label>
<select name="subcat">
                <option value="0"> Выберите подкатегорию </option>);');		
$result2 = mysql_query ("SELECT name,id FROM subcat WHERE cat='<!--ВОТ ТУТ ВСЯ ЗАГВОЗДКА-->'",$db); 


if (!$result2)
{
echo "<p> Запрос на выборку данных из базы не прошел. Напишите об этом администратору  <br> <strong>Код ошибки:</strong></p>;";	
exit(mysql_error());
}

if (mysql_num_rows($result2) > 0)

{
$myrow2 = mysql_fetch_array($result2);
do
{
printf("<option value='%s'>%s</option>",$myrow2["id"],$myrow2["name"]);
	
}
while ($myrow2 = mysql_fetch_array($result2));
}

else
{
echo "<p> В таблице нет записей.</p>";	
exit();
}
			
?>
                              
                                </select>
 
Останнє редагування:

Тагрим

Поняшка
Подключить jQuery
P.S. Селектам id проставь, чтобы хендлить нормально
PHP:
javascript:

$('#cat').click(function(){
  $.get(
  "backend.php",
  {
   selected: $('#cat :selected').val()
  }
  ,function(data){
  $('subcat').append($(data));} //Вот тут может быть ошибка. Не помню, может ли так оно обрабатываться
);
});

backend.php:

<?php
if (isset($_GET['selected']){
$mysql = mysql_connect($host,$user,$pass);
$query = "SELECT * FROM db.subcat WHERE parentcat={$_GET['selected']}";
$result = mysql_query($query, $mysql);
while ($arr = mysql_fetch_array($result)){
 $res .= "<select value=\"{$arr['id']}\">{$arr['title']}</select>";
 }
echo $res;
}
?>
как-то так
 

Glu4it

Member
Не работает. Список подкатегорий вообще не выводит.
 

dreamer

Member
Не работает. Список подкатегорий вообще не выводит.
Тут имеется в виду, что на сервере ты не знаешь номер категории, а значит тебе нужно или обрабатывать ситуацию на клиенте (хранить например подкатегории всех категорий а яваскриптом показывать только нужную часть или же аяксом загружать эту часть, как подсказал Тагрим) или же при выборе категории нужно перезагружать страницу и на сервере уже заполнять подкатегории.
Выбирай как тебе удобнее.
 

Glu4it

Member
Вот нашел хороший вариант, попробую.
 

WenoL

Добродеятель
Привет друзья! Столкнулся с задачкой над которой промучался долго, но кроме решения по чекбоксам не нашел... :( В общем надо все данные из value из form собрать и посместить в массив.. ну а дальше я знаю что с ними делать ;)

Вот на картинке мои деяния:
буду очень признателен за дельный совет!

You must be registered for see images
 

Вкладення

Dre.hz

Active Member
Код:
<input name="order[0][amount]" .... />
<input name="order[1][amount]" .... />
<input name="order[2][amount]" .... />
Если неважна нумерация, то можно даже так
Код:
<input name="order[][amount]" .... />
 

Dark

Member
Подскажите пожалуста, делаю сайт при помощи DLE, поставил на хостин и столкнулся с таким вот сообщением:

Внимание ошибка безопасности:
Ваш сервер не отвечает минимальным требованиям безопасности, на сервере включена директива allow_url_include, для отключения данной директивы обратитесь к вашему хостинг провайдеру.

Где можно выключить эту дерективу?
 

Dark

Member
А в какой из .htaccess, такой файл есть почти в каждой папке шаблона?
 
Зверху