Автор Тема: Не увязываются элементы прайс-листа  (Прочитано 8750 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kostyab

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.merry-go-round.ru
Не увязываются элементы прайс-листа
« : 30 Сентября 2002, 19:38:26 »
Привет всем! Спасибо за ответы на мой предыдущий вопрос, все отлично получилось!
Сейчас столкнулся с новой проблемой.
Есть прайс-лист, он состоит из массива
$shelf=array("Книга 1"=>25"Книга 2"=>30"Книга 3"=>40);
После чего строится html-таблица типа
книга -- цена -- количество заказанных книг (здесь поле формы)
$book -- $coast --
Все отлично строится, однако я застрял с "количеством заказанных книг" $quant. Мне никак не связать $quant, которое ввел пользователь с $book, которую он хочет заказать.
Всем желаю удачи! Пока

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Не увязываются элементы прайс-листа
« Ответ #1 : 30 Сентября 2002, 20:22:22 »
Как вариант, можно сделать для каждой книги свою форму, а там можно связывать через hidden или другим способом.
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не увязываются элементы прайс-листа
« Ответ #2 : 01 Октября 2002, 01:14:33 »
Лучше пересмотри для начала формат данных. Название в роли ключа - плохая идея.
Например,
array(key1=>array("name",price), key2=>...)
Я так думаю (c)

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
Не увязываются элементы прайс-листа
« Ответ #3 : 01 Октября 2002, 04:56:20 »


PS: $coast - берег, $cost - стоимость
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Не увязываются элементы прайс-листа
« Ответ #4 : 01 Октября 2002, 10:43:57 »
в форме

в скрипте:
if(isset($submit) || isset($book)) {
    foreach(
$book as $key => $value) {
        
// где $key - id книги, $value - ее цена
        
if($value != "") {
           
// тут добавляем или делаем что угодно
       
}
    }
}
Евгений aka Razor,

Оффлайн Kostyab

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.merry-go-round.ru
Не увязываются элементы прайс-листа
« Ответ #5 : 01 Октября 2002, 14:40:13 »
to: PilotV

Идея мне очень понравилась, я создал такой массив, но мне теперь никак не создать таблицу типа book--cost. Раньше я делал так:

print "<table>";
reset ($shelf); //где $shelf  это название массива
$hd1=key($shelf);
$hd2=$shelf[$hd1];
while(list(
$book,$cost)=each($shelf)):
print 
"<tr><td>$book</td>
                 <td>Цена 
$cost руб.</td></td>
                 <td> Количество: <input type=text name=book[
$id] size=1 value="">
    </td></tr>"
;
endwhile;
print 
"</table>";



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

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не увязываются элементы прайс-листа
« Ответ #6 : 01 Октября 2002, 16:16:18 »
Если ты имеешь в виду, что моя идея понравилась и ты сделал как я порекомендовал, то:
foreach ($shelf as $id=>$book)
echo "... $id ... $book[0] ... $book[1] ...";
Я так думаю (c)

Оффлайн Kostyab

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.merry-go-round.ru
Не увязываются элементы прайс-листа
« Ответ #7 : 01 Октября 2002, 17:36:54 »
to PilotV:
Да, я сделал так, хотя пока не совсем разобрался с многомерными массивами вообще, поэтому многое не понятно.
Если можно, задам еще один вопрос.
Я сделал так:

$shelf
=array(key01=>array("Книга 1"25),
                   
key02=>array("Книга 2"25),
                   
key03=>array("Книга 3"25));
print 
"<table>";
reset ($shelf);
foreach (
$shelf as $id=>$book){
print 
"<tr><td> $book[0]</td>
    <td>Цена <b>
$cost[0]</b> руб.</td></td>
    <td>Количество: <input type=text name=book[
$id] size=1 value=>
    </td></tr>"
;}
print 
"</table>";

Однако цена $cost не вынимается. А вообще такой метод кажется очень удобным.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Не увязываются элементы прайс-листа
« Ответ #8 : 01 Октября 2002, 19:51:58 »

$shelf
=array(
  
key01=>array("title"=>"Книга 1""price"=>25),
  
key02=>array("title"=>"Книга 2""price"=>25),
  
key03=>array("title"=>"Книга 3""price"=>30)
);
print 
"<table>";
print 
"<tr>
    <td><td>Название<b></td>
    <td><b>Цена</b></td>
    <td><b>Количество:</b></td>
</tr>"
;
reset ($shelf);
foreach (
$shelf as $id=>$book){
print 
"<tr>
    <td>
$book[\'title\']</td>
    <td>
$book[\'price\'] руб.</td>
    <td><input type=\'text\' name=\'cart[
$id]\' size=1></td>
</tr>"
;
}
print 
"</table>";
« Последнее редактирование: 01 Октября 2002, 20:06:17 от RomikChef »

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не увязываются элементы прайс-листа
« Ответ #9 : 02 Октября 2002, 01:02:17 »
Или так... Но я обычно на объектах с малым количеством характеристик на ассоциативные массивы не размениваюсь.

Kostyab
Ты в моем коде $cost[0] видел? Замени на $book[1].
Я так думаю (c)

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не увязываются элементы прайс-листа
« Ответ #10 : 02 Октября 2002, 01:03:12 »
By the way, перед foreach reset() не нужен.
Я так думаю (c)

Оффлайн PilotV

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не увязываются элементы прайс-листа
« Ответ #11 : 02 Октября 2002, 01:04:53 »
[OFF]О, меня уже завсегдатаем сделало... пойду посмотрю что за это дают[/OFF]
Я так думаю (c)

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Не увязываются элементы прайс-листа
« Ответ #12 : 02 Октября 2002, 09:59:31 »
RomikChef
[OFF]
Ты же не признаешь перебор ассоциативных массивов?! :)
[/OFF]
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Kostyab

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.merry-go-round.ru
Не увязываются элементы прайс-листа
« Ответ #13 : 02 Октября 2002, 12:59:36 »
Спасибо большое за помощь! Однако в строке
$book[\'title\']
программа дает сбой типа
unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Оффлайн Дмитрий Попов

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 264
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.programmist.spb.ru
Не увязываются элементы прайс-листа
« Ответ #14 : 02 Октября 2002, 14:23:48 »
Kostyab


<?
$shelf=array(
  
key01=>array("title"=>"Книга 1""price"=>25),
  
key02=>array("title"=>"Книга 2""price"=>25),
  
key03=>array("title"=>"Книга 3""price"=>30)
);
print 
"<table>";
print 
"<tr>
    <td><td>Название<b></td>
    <td><b>Цена</b></td>
    <td><b>Количество:</b></td>
</tr>"
;
reset ($shelf);
foreach (
$shelf as $id=>$book){
print 
"<tr>
    <td>"
.$book[\'title\']."</td>
    <td>".$book[\'price\']." руб.</td>
    <td><input type=\'text\' name=\'cart[$id]\' size=1></td>
</tr>";
}
print "</table>";

Т.е. Выводите массивы не в кавычках.
 За Родину! За Россию!
SendMail для любого хостинга.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28