|
|
|
| требуется выбрать позицию из одной таблицы и наравне с другими опциями отправить это дело в другую таблицу, а вот описать это меню с выбором не получается...
<form action=<?php echo $action; ?> method=post>
<table>
<tr><td><p class=zag2>дата</td><td><input size=19 class=input type=text name=date value='<?php echo $date; ?>'></td></tr>
<tr><td><p class=zag2>от кого</td><td><input size=19 class=input type=text name=kto value='<?php echo $kto; ?>'></td></tr>
<tr><td><p class=zag2>кому</td><td><input size=19 class=input type=text name=komu value='<?php echo $komu; ?>'></td></tr>
<tr><td><p class=zag2>адрес</td><td><input size=19 class=input type=text name=address value='<?php echo $address; ?>'></td></tr>
<tr>
<td><p class=zag2>материал</td>
<td>
<select class=input type=text name="material">
<?
$query = mysql_query("SELECT *
FROM material
ORDER BY mat ASC");
//дальше ступор
?>
</select>
</td>
</form>
|
| |
|
|
|
|
|
|
|
для: DreadfulS
(31.10.2006 в 10:53)
| | примерно так (как вам помочь, если вы не указали, какие поля вы выбираете из своей таблицы):
<select name="country" class="input" style="font-size: 10;">
<? $find_countries_query = mysql_query("select * from ".$db_prefix."countries") or die (mysql_error());
while($country = mysql_fetch_array($find_countries_query)){
$idcountry = $country['idcountry'];
$countryname = $country['name'];
?>
<option value="<?=$idcountry;?>"><?=$countryname;?></option>
<?}?>
</select>
|
| |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 11:06)
| | спасибо, получилось так:
<?php
///////////////////////////////////////////////////
// Устанавливаем соединение с базой данных
require_once("../config.php");
if($title == "") $titlepage=$title = "Добавление заявки";
include "../util/topadmin.php";
if(!isset($button)) $button = "Добавить";
if(!isset($action)) $action = "addprod.php";
if(!isset($showhide)) $showhide = "checked";
$date = date("Y.m.d");
// Если позиция товарной позиции не передана
// назначаем ей последнюю позицию
if(!isset($pos))
{
$query = "SELECT MAX(pos) FROM product
WHERE id_catalog=".$_GET['id_parent'];
$num = mysql_query($query);
if($num) $pos = mysql_result($num,0) + 1;
}
?>
<form action=<?php echo $action; ?> method=post>
<table>
<tr><td><p class=zag2>дата</td><td><input size=19 class=input type=text name=date value='<?php echo $date; ?>'></td></tr>
<tr><td><p class=zag2>от кого</td><td><input size=19 class=input type=text name=kto value='<?php echo $kto; ?>'></td></tr>
<tr><td><p class=zag2>кому</td><td><input size=19 class=input type=text name=komu value='<?php echo $komu; ?>'></td></tr>
<tr><td><p class=zag2>адрес</td><td><input size=19 class=input type=text name=address value='<?php echo $address; ?>'></td></tr>
<tr>
<td><p class=zag2>материал</td>
<td>
<select name="material" class="input" style="font-size: 10;">
<? $query = mysql_query("SELECT *
FROM material
ORDER BY mat ASC") or die (mysql_error());
while($mat = mysql_fetch_array($query)){
$id_mat = $mat['id_mat'];
$material = $mat['mat'];
?>
<option value="<?=$id_mat;?>"><?=$material;?></option>
<?}?>
</select>
</tr>
<tr><td><p class=zag2>водило</td><td><input size=19 class=input type=text name=vod value='<?php echo $vod; ?>'></td></tr>
<tr><td><p class=zag2>примечание</td><td><input size=19 class=input type=text name=note value='<?php echo $note; ?>'></td></tr>
<tr><td><p class=zag2>Позиция</td><td><input size=3 class=input type=text name=pos value='<?php echo $pos; ?>'></td></tr>
<tr><td><p class=zag2>Менеджер</td><td><input size=19 class=input type=text name=manager value='<?php echo $manager; ?>'></td></tr>
<tr><td><p class=zag2>не выполнена</td><td><input type=checkbox name=hide <?php echo $showhide; ?>></td></tr>
<tr><td></td><td><input class=button type=submit value=<?php echo $button; ?>></td></tr>
<input type=hidden name=id_catalog value=<?php echo $_GET['id_catalog']; ?>>
<input type=hidden name=id_product value=<?php echo $_GET['id_product']; ?>>
</table>
</form>
|
файл записи в БД
<?php
///////////////////////////////////////////////////
// Осуществляем соединение с базой данных
require_once("../config.php");
// Проверим - достаточно ли информации для занесения в базу данных
if(!isset($_POST['address'])) links($_POST['id_catalog'], "Отсутствует адрес");
if(!isset($_POST['komu'])) links($_POST['id_catalog'], "Не введено кому");
if(!isset($_POST['kto'])) links($_POST['id_catalog'], "Не введено от кого");
if(!isset($_POST['price'])) links($_POST['id_catalog'], "Не введена цена");
if(!isset($_POST['pricemeter'])) links($_POST['id_catalog'], "Не введено количество");
if(!isset($_POST['pos'])) links($_POST['id_catalog'], "Не введена позиция заявки");
if(!isset($_POST['manager'])) links($_POST['id_catalog'], "ВВЕДИ МЕНЕДЖЕРА, БЫРА!!!");
// Выясняем скрыта товарная позиция или нет
if($_POST['hide'] == "on") $showhide = 'show';
else $showhide = 'hide';
// Заменяем одинарные кавычки
$_POST['note'] = str_replace("'","`",$_POST['note']);
$_POST['address'] = str_replace("'","`",$_POST['address']);
$_POST['komu'] = str_replace("'","`",$_POST['komu']);
$_POST['vod'] = str_replace("'","`",$_POST['vod']);
$_POST['kto'] = str_replace("'","`",$_POST['kto']);
$_POST['manager'] = str_replace("'","`",$_POST['manager']);
// Формируем запрос
$query = "INSERT INTO product VALUES (
NULL,
'".$_POST['vod']."',
'".$_POST['date']."',
'".$_POST['note']."',
'".$_POST['address']."',
'".$_POST['kto']."',
'".$_POST['komu']."',
'".$_POST['material']."',
".$_POST['price'].",
".$_POST['pricemeter'].",
'".$_POST['currency']."',
'$showhide',
".$_POST['pos'].",
".$_POST['manager'].",
".$_POST['id_catalog'].")";
if(mysql_query($query)) {
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=".$_POST['id_catalog']."'>
</HEAD></HTML>";
} else puterror("Ошибка при добавлении заявки");
function links($id_catalog,$msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>Вернуться к правке заявки</a></p>";
echo "<p><a href=index.php?id_parent=$id_catalog>Администрирование каталога заявок</a></p>";
exit();
}
?>
|
но проблема осталась, из формы пишется всё кроме этой выбранной позиции | |
|
|
|
|
|
|
|
для: DreadfulS
(31.10.2006 в 11:44)
| | когда какая-то переменная не пишется, полезно вывести ее на экран и посмотреть, что в ней.
в самом начале файла-обработчика поставьте это:
echo $_POST["material"]; exit;
|
и еще. дайте переменной, которая обозначает материал, выбранный по запросу, другое имя (у вас и селект называется material и переменная). назовите ее, например, $mat_q - будете знать, что она из query:
| |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 11:59)
| | спасибо, всё проходит, теперь только проблема с обработчиком, постоянно выдаёт ошибку, хотя в таком варианте всё было ок
<select class=input type=text name=material>
<option value='mat1' <?php if($currency == 'mat1') echo "selected"; ?>>материал1
<option value='mat2' <?php if($currency == 'mat2') echo "selected"; ?>>материал2
</select>
|
ведь структура запроса и записи не изменилась, изменилась только форма отправки данных, и данные отправляются, в чём может быть проблема? | |
|
|
|
|
|
|
|
для: DreadfulS
(31.10.2006 в 12:39)
| | какую ошибку выдает? если вы посмотрите код вашей формы в браузере (view source), что
видите? чем отличается от вышеприведенного?
PS type=text - зачем это в селекте? и почему не закрываете опции </option>? | |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 12:46)
| | всмысле в чём разница отображения новой формы и той что была? если так то визуальной разницы нет | |
|
|
|
|
|
|
|
для: DreadfulS
(31.10.2006 в 13:02)
| | проблема с обработчиком, постоянно выдаёт ошибку, хотя в таком варианте всё было ок
.......................
визуальной разницы нет
......................
что за ошибку выдает обработчик? разницы и не должно быть - для этого и сравнивали. надо, чтоб код, построенный PHP, не отличался от написанного без использования циклов, запросов и т.д | |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 13:12)
| | ошибка добавления - Unknown column 'Олег' in 'field list'
"Олег" это одно из обязательных полей для добавления в БД, ранее работала без сбоев, обработчик вообще остался без изменений, изменился только способ выбора одной из опций, это могло как то повлиять? | |
|
|
|
|
|
|
|
для: DreadfulS
(31.10.2006 в 13:49)
| | имя поля по-русски? первый раз такое вижу... | |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 13:58)
| | это не поле, это то что я ввожу в форме, а поле там как раз называется "manager"
<tr><td><p class=zag2>Менеджер</td><td><input size=19 class=input type=text name=manager value='<?php echo $manager; ?>'></td></tr>
|
до изменения выпадающего списка для выбора позиции, работало безупречно | |
|
|
|
|
|
|
|
для: DreadfulS
(31.10.2006 в 14:02)
| | вот и ошибка! кавычки нужны для поля manager:
$query = "INSERT INTO product VALUES (
NULL,
'".$_POST['vod']."',
'".$_POST['date']."',
'".$_POST['note']."',
'".$_POST['address']."',
'".$_POST['kto']."',
'".$_POST['komu']."',
'".$_POST['material']."',
".$_POST['price'].",
".$_POST['pricemeter'].",
'".$_POST['currency']."',
'$showhide',
".$_POST['pos'].",
'".$_POST['manager']."',
".$_POST['id_catalog'].")";
|
| |
|
|
|
|
|
|
|
для: elenaki
(31.10.2006 в 14:08)
| | угу... действительно, но раньше работало и без них) спасибо большое, буду пробывать. | |
|
|
|
|
|
|
|
для: DreadfulS
(31.10.2006 в 14:35)
| | снова поднимаю данную тему, возникла проблема при правке данных записаных в БД, форма для правки используется та же что и для записи новых данных, по аналогии с каталогом продукции из книги, дело в том что данные выбираемые из списка при правке становятся по умолчанию, а не те что были записаны в БД, как это разрешить? | |
|
|
|