|
|
|
| Здравствуйте!
Этот скрипт взят на этом форуме
строчка "name=product$catalog[id_catalog]>" во втором селекте не передается на страницу обработчик, я подстраиваю POST, даже сессии.
name=id_catalog из первого селекта спокойно ложиться в базу, а вот второй селект, скрипт не видит, возможно тут закралась маленкая неточность???
я бьюсь уже долгое время, Ошибка немеханическа POST и т.п.
Просьба к Хеопсу помочь, я думаю для Вас это займет 1 минуту. Я уже рожаю ежиков:)
$query = "SELECT * FROM catalogs
ORDER BY name";
$cat = mysql_query($query);
if(!$cat) exit(mysql_error());
if(mysql_num_rows($cat) > 0)
{
echo "Ðóáðèêà:<br><select name=id_catalog onchange='show(this.form.id_catalog)'>";
echo "<option value=0>choose a rubrica</option>";
while($catalog = mysql_fetch_array($cat))
{
if($_POST['id_catalog'] == $catalog['id_catalog']) $selected = "selected";
else $selected = "";
echo "<option value=$catalog[id_catalog] $selected>$catalog[name]</option>";
$array_catalog[] = $catalog['id_catalog'];
}
echo "</select></td>
<td >Ïîäðóáðèêà:";
}
$query = "SELECT * FROM catalogs";
$cat = mysql_query($query);
if(!$cat) exit(mysql_error());
if(mysql_num_rows($cat) > 0)
{
while($catalog = mysql_fetch_array($cat))
{
$query = "SELECT * FROM products
WHERE id_catalog = $catalog[id_catalog]
ORDER BY name";
$prd = mysql_query($query);
if(!$prd) exit(mysql_error());
if(mysql_num_rows($prd) > 0)
{
echo " <select id=$catalog[id_catalog] style=\"display:none\" name=product$catalog[id_catalog]>";
echo "<option value=0>choose a subrubrica</option>";
while($product = mysql_fetch_array($prd))
{
if($_POST['id_product'] == $product['id_product']) $selected = "selected";
else $selected = "";
echo "<option value=$product[id_product] $selected>$product[name]</option>";
}
echo "</select>";
}
}
}
|
| |
|
|
|
|
|
|
|
для: ronin
(28.09.2007 в 19:33)
| | 1) Каким браузером пользуетесь?
2) Приведите пожалуйста ссылку на исходную тему или структуру используемых таблиц? | |
|
|
|
|
|
|
|
для: cheops
(29.09.2007 в 21:07)
| | 1) Эксплорер
2)http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=38383:
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=40026;
прикрепляю скаченный с форума файл с дампом и скриптом | |
|
|
|
|
|
|
|
для: ronin
(01.10.2007 в 13:00)
| |
CREATE TABLE `ogol` (
`id_ogol` int(11) NOT NULL auto_increment,
`id_catalog` int(11) default NULL,
`id_product` int(11) default NULL,
PRIMARY KEY (`id_ogol`),
) ;
CREATE TABLE `catalogs` (
`id_catalog` int(11) NOT NULL auto_increment,
`name` tinytext NOT NULL,
PRIMARY KEY (`id_catalog`)
) ;
CREATE TABLE `products` (
`id_product` int(11) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`id_catalog` int(11) NOT NULL default '0',
PRIMARY KEY (`id_product`),
) ;
|
странное дело если id_catalog ложиться в базу всегда, то id_product только тогда, когда выбрано самое большое по номеру id_catalog, если их( id_catalog) 4, то id_product попадает в базу только если выбран id_catalog==4, если ==1, или ==2 и т.п то id_product пустой, если добавить новый id_catalog т.е №5 то теперь соответствено id_product будет вноситься в базу только если id_catalog выбран№5. Все остальные id_product в том числе относящиеся к id_catalog №4 уже не вводяться в базу и их не видит страница обработчик.
При этом все это происходит если второй селект обозвать name=id_product т.е name=product$catalog[id_catalog] он "не видит". Естественно страница обработчик:
$id_product = $_POST['id_product'] ;
|
| |
|
|
|
|
|
|
|
для: ronin
(16.10.2007 в 16:31)
| | Здравствуйте! мне нужно присвоить ник Маугли, я пошел другим путем я разбил оперецию на две страницы:
<table bgcolor=#cccccc border=1 cellspacing=0 cellpadding=0 width=700 >
<tr> <td width=250 >
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once("config.php");
echo "<form name=form1 action=index2.php method=post>";
$query = "SELECT * FROM catalogs
ORDER BY name";
$cat = mysql_query($query);
if(!$cat) exit(mysql_error());
if(mysql_num_rows($cat) > 0)
{
echo "country:<br><select name=id_catalog >";
echo "<option value=0>choose a country</option>";
while($catalog = mysql_fetch_array($cat))
{
if($_POST['id_catalog'] == $catalog['id_catalog'])
{
$selected = "selected";
}
else $selected = "";
echo "<option value=$catalog[id_catalog] $selected>$catalog[name]</option>";
$array_catalog[] = $catalog['id_catalog'];
}
echo "</select></td>
";
}
?>
</td>
</tr>
</tr>
<tr>
<td >
<input type="submit" value="Âûáðàòü"><br>
</form>
</td></tr></table>
|
тут выбирается первый селект и при его выборке переходим на вторую страницу:
?php
$id_catalog=((!isset($_POST["id_catalog"]))?"":$_POST["id_catalog"]);
require_once("config.php");
echo "<form name=form1 action=add_reg.php method=post>";
echo "<input type=text READONLY name=id_catalog value=".$_POST["id_catalog"].">";
$query = "SELECT * FROM catalogs LIMIT 1 ";
$cat = mysql_query($query);
if(!$cat) exit(mysql_error());
if(mysql_num_rows($cat) > 0)
{
while($catalog = mysql_fetch_array($cat))
{
$query = "SELECT * FROM products
WHERE id_catalog = $id_catalog
ORDER BY name ";
$prd = mysql_query($query);
if(!$prd) exit(mysql_error());
if(mysql_num_rows($prd) > 0)
{
echo " <select name=id_product>";
echo "<option value=0>choose a state</option>";
while($product = mysql_fetch_array($prd))
{
if($_POST['id_product'] == $product['id_product']){ $selected = "selected";
}
else{ $selected = "";
echo "<option value=$product[id_product] $selected>$product[name]</option>";}
}
echo "</select>";
}
}
}
?>
<input type="submit" value="Âûáðàòü"><br>
</form>
|
и нажав тут submit все перекидывается на страницу обработчик,Тогда все пашет т.е и id_product и id_catalog - нормально ложаться в базу, как бы их объединить на одну страницу? | |
|
|
|