|
|
|
| Здравствуйте!
на этом форуме взял скрипт каталога:
<?php
require_once("configuration.php");
# echo "<form action=3.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 onchange='show(this.form.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 >state:";
}
$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]>";
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>";
}
}
}
|
он привязан к двум таблицам. у меня все работает, но я пытаюсь при выборе id_catalog и id_product закинуть их в другую таблицу
$query = "insert into users( country,state ) values
( '".$id_catalog."', '".id_product ."' )";
|
при этом данные $id_catalog заносятся, а id_product нет - пусто. | |
|
|
|
|
|
|
|
для: ronin
(04.07.2007 в 13:30)
| | Да потомучто у Вас id_product не переменная,
поставьте впереди $ | |
|
|
|
|
|
|
|
для: Faraon
(04.07.2007 в 13:40)
| | Нет не работает, в скрипте переменная имееться, извиняюсь за невнимание при размещение инфы на сайте! | |
|
|
|
|
|
|
|
для: ronin
(04.07.2007 в 13:52)
| | Я имею ввиду не в скрипте а в SQL-запросе
$query = "insert into users(country,state) values
('".$id_catalog."', '".$id_product."')";
|
| |
|
|
|
|
|
|
|
для: Faraon
(04.07.2007 в 14:09)
| | я понял с самого начала про SQL запрос!
$query = "insert into users(country,state) values
('".$id_catalog."', '".$id_product."')";
|
не работает.
т.е в базу заноситься $id_catalog, а $id_product - не заносится. | |
|
|
|
|
|
|
|
для: ronin
(04.07.2007 в 15:14)
| | Надо смотреть полностью скрипт, и то место где вы хотите вставить данные в другую таблицу.
Приведите полный пример что Вы делаете. Вполне вероятно что в том месте переменная $id_pruduct не определена | |
|
|
|
|
|
|
|
для: Faraon
(04.07.2007 в 15:38)
| | все таки я думаю причина в динамическом списке
if (isset($_POST["id_product"]))
{
$query = "insert into users(country,state) values
('".$id_catalog."', '".$id_product."')";
}
else {
echo ('нет переменной);
}
|
страница обработчик "не видит" переменной $id_product из динамического списка, а $id_catalog - "видит"!
Там где динамический список выводиться, он же является формой из которой закидываются данные в БД . Переменная $id_catalog является также названием первого селекта, а название второго селекта: name=product$catalog[id_catalog] , может тут собака зарыта? | |
|
|
|
|
|
|
|
для: ronin
(04.07.2007 в 16:11)
| | Ну правильно, у Вас же переменная $id_product не определена! У Вас есть только массив $_POST[id_product]
надо ее определить:
if (isset($_POST["id_product"]))
{
$id_product=$_POST["id_product"];
$query = "insert into users(country,state) values
('".$id_catalog."', '".$id_product."')";
}
else {
echo ('нет переменной);
}
|
| |
|
|
|
|
|
|
|
для: Faraon
(04.07.2007 в 16:21)
| | переменные у меня определяются в самом начале(это самой саюой подразумевается! как тогда работает первая переменная?!), я пробывал и вашим способом - не видит скрипт переменную, на этой странице , она не поступает, причинана где-то в динамическом списке!!! | |
|
|
|
|
|
|
|
для: ronin
(04.07.2007 в 16:53)
| | А если вывести echo $id_product, что нибудь то будет? | |
|
|
|
|
|
|
|
для: Faraon
(04.07.2007 в 17:35)
| |
echo "Country: $id_catalog<br/>";
echo "State: $id_product<br/>";
|
echo "Country: $id_catalog<br/>"; выводит - то что нужно и то что попадает в базу.
echo "State: $id_product<br/>"; - пусто, и в БД тоже:)
В то же время в форме все ок! т.е выводится первый список я выбираю позицию($id_catalog) - и открывается второй($id_product), я выбираю позицию. при сабмите первая позиция закидывается,а вторая нет:) | |
|
|
|
|
|
|
|
для: ronin
(04.07.2007 в 17:55)
| | !! | |
|
|
|
|
|
|
|
для: ronin
(04.07.2007 в 16:53)
| | переменные у меня определяются в самом начале(это самой саюой подразумевается!
Такие вещи не подразумеваются сами собой!
Если Вы используете некоторую переменную, будьте любезны показать, что Вы её определяете перед этим. | |
|
|
|
|
|
|
|
для: Trianon
(05.07.2007 в 10:11)
| |
$id_catalog=((!isset($_POST["id_catalog"]))?"":$_POST["id_catalog"]);
$id_product=((!isset($_POST["id_product"]))?"":$_POST["id_product"]);
|
Странное дело - если в форме поменять имя второго селекта name=product$catalog[id_catalog] на такой вариант: name=id_product работает частично: т.е. если id_catalog = 3 переменная id_product - работает, если другие номера id_catalog - то id_product = 0.
при этом я добавил:
echo "<option value=0>choose a state</option>";
|
в второй селект
echo " <select id=$catalog[id_catalog] style=\"display:none\" name=id_product>";
echo "<option value=0>choose a state</option>";
|
без этой строчки вместо нуля в id_product номера, которые несоответствуют какими они должны быть. При этом форма, где все это выводится работает корректно. | |
|
|
|
|
|
|
|
для: ronin
(05.07.2007 в 10:38)
| | . | |
|
|
|