Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2017, 15:53   #1
kuzmich
Форумчанин
 
Аватар для kuzmich
 
Регистрация: 05.05.2007
Сообщений: 236
По умолчанию категории, под категории и запись в БД

всем привет!...
такая ситуация - надо записать данные в базу, но это не проблема запись.
вся проблема в выборке категории и под категории.
не могу сообразить как правельно сделать.

вот мой код с категории и под категории:


Код:
<?php
 session_start();
 include("include/bd.php");
 if (isset($_GET['cat_id'])) {$cat = $_GET['cat_id'];}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Добавить Услугу</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body bottommargin="0" leftmargin="0" rightmargin="0" topmargin="0">
<table width="90%" align="center" cellpadding="0" cellspacing="0" class="main_table">
<?php
 include("include/header_logo.php");
?>
<?php
 include("include/header_find.php");
?>
  <tr>
    <td width="70%" valign="top"><table width="90%" align="center" class="table_categories">
      <tr>
        <td width="10%"><div align="center"><strong>Раздел:</strong></div></td>
        <td width="40%">
		 <select size="1">
		    <?php
			$result = mysql_query("select * from categories where pod_id='0'",$db);
if (!$result)
{
echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></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["title"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечина, в таблице нет записей!</p>";
exit();
}
			?>
		   </select>
		</td>
        <td width="10%"><div align="center"><strong>Рубрика:</strong></div></td>
        <td width="40%">
		<select name="$cat" size="1">
		 <?php
	$result3 = mysql_query("select * from categories where pod_id='$cat'",$db);
if (!$result3)
{
echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>";
exit(mysql_error());
}
if (mysql_num_rows($result3) > 0){
$myrow5 = mysql_fetch_array($result3);

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

}
else
{
echo "<div align='center'>Информация по запросу не может быть извлечина, в таблице нет записей!</div>";
//exit();
}

  ?>
		</select>
		</td>
      </tr>
      <tr>
        <td colspan="4"> </td>
      </tr>
    </table></td>
<?php
 include("include/td_right.php");
?>
  </tr>
<?php
 include("include/footer.php");
?>
</table>
</body>
</html>

изначально делал через тег
<select><option value=''></option></select>

мне надо сделать, чтобы при выборе раздела - появлялась рубрика. вся информация хранится в одной таблице.

заранее благодарю

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 15.02.2017 в 16:35.
kuzmich вне форума Ответить с цитированием
Старый 15.02.2017, 16:24   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Оформляем код:


По сабжу – гуглим «php связанные списки».
Andkorol вне форума Ответить с цитированием
Старый 16.02.2017, 14:13   #3
kuzmich
Форумчанин
 
Аватар для kuzmich
 
Регистрация: 05.05.2007
Сообщений: 236
По умолчанию

всем привет.

ни как не могу сообразить как сделать выплывающие меню с помощью селекта, ajax и javascript.

написал код, в первом селекте выбираю, появляется второй селект но он пуст.

тут содержание первого селекта, при выборе раздела должен появится второй селект с под разделом.

Код:
<select size="1" name="country" onchange="javascript:selectRegion();" style="float:left;">
<option value="">Все разделы</option>
<optgroup label="Выберите раздел">
<?php
 $result1 = mysql_query("select * from categories where pod_id='0'",$db);
if (!$result1)
{
echo "<p>Запрос из выборки базы данных не прошел. Напишите об этом администратору. <em><strong>Код ошибки:</strong></em></p>";
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0){
$myrow1 = mysql_fetch_array($result1);
do
{
printf ("<option value='%s'>%s</option>",$myrow1["id"],$myrow1["title"]);
}
while ($myrow1 = mysql_fetch_array($result1));
}
else
{
echo "<p>Информация по запросу не может быть извлечина, в таблице нет записей!</p>";
exit();
}
?>
</optgroup>
</select>

<div name="selectDataRegion" style="float:left;"></div>
<script type="text/javascript">
function selectRegion(){
        var cat_id = $('select[name="country"]').val();
        if(!cat_id){
                $('div[name="selectDataRegion"]').html('');
        }else{
                $.ajax({
                        type: "POST",
                        url: "include/ajax.base.php",
                        data: { action: 'showRegionForInsert', cat_id: cat_id },
                        cache: false,
                        success: function(responce){ $('div[name="selectDataRegion"]').html(responce); }
                });
        };
};

</script>
файл ajax.base.php
Код:
<?php

ini_set(default_charset,"UTF-8");

# include data base
require "bd.php";
switch ($_POST['action']){
                
        case "showRegionForInsert":
                echo '<select size="1" name="region" onchange="javascript:selectCity();">';
                $result = mysql_query("SELECT * FROM categories WHERE cat_id=".$_POST['cat_id']." ORDER BY title ASC",$db);
                foreach ($result as $numRow => $row) {
                        echo '<option value="'.$row['id'].'">'.$row['title'].'</option>';
                };
                echo '</select>';
break;
}
?>
что то сообразить не могу что да как.

заранее благодарю
kuzmich вне форума Ответить с цитированием
Старый 16.02.2017, 15:09   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Как найти ошибку в своём коде?

1. Убедиться, что в ajax.base.php передаются корректные данные.
2. Убедиться, что ajax.base.php отрабатывает как нужно – путём прямого вызова скрипта, с имитацией нужных данных в $_POST.
На одном из этих этапов есть ошибка.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Категории статей wordpres edmynt WordPress и другие CMS 2 15.07.2013 01:24
категории и подкатегории nfernee PHP 0 14.03.2012 01:26
Категории в Joomla Xeon332 WordPress и другие CMS 1 05.03.2011 22:43
категории в dle webstream HTML и CSS 0 15.01.2011 17:05
БД Access. ID категории cnst_bus БД в Delphi 2 18.01.2010 11:20