Гриша К.
Новичок
Путаница "foreach ($cart as $idsealy => $qty)" и "foreach ($cart as $idemt => $
Здравствуйте. Подскажите пожалуйст решение.
ПРИ ПОПАДАНИИ НА СТРАНИЦУ КОРЗИНЫ ДЛЯ ПОКУПОК (cart.php), в зависимоти от выбора пользователем значения на предыдущей странице,
передается GET запрос: magazin/cart?new=$idsealy или magazin/cart?new=$idsealy.
Если например запрос будет равным magazin/cart?new=$idsealy, то в корзине появляется строчка с именем $idsealy и количество $qty=1,
т.е. срабатывает функция display_cart (где foreach ($cart as $idsealy => $qty)),
но также получается, что также вызывается функция display_cart_emt (где foreach ($cart as $idemt => $qty)) и в ней тоже отображается строчка из функции display_cart,
т.е. строчки дублируются.
Происходится путаница между "foreach ($cart as $idsealy => $qty)" и "foreach ($cart as $idemt => $qty)".
Подскажите пожалуйста, как сделать так, чтобы если например вызывается запрос: magazin/cart?new=$idsealy,
то срабатывала только функция display_cart. Нужно сделать какое-то условие, но у меня не получается.
Вот часть, кода отвечающая за содержание и вывод электронной корзины.
-~{}~ 18.06.05 21:32:
Есть два цикла foreach ($cart as $idsealy => $qty)" и "foreach ($cart as $idemt => $qty), какое условие можно использовать, чтобы например если передается $idsealy, то срабатывает первый цикл и наоборот. Как разделить два цикла при помощи условия, чтобы они не путалиь.
Подскажите пожаалуйста!!!
-~{}~ 18.06.05 21:55:
Я отредактировал тему, теперь код php цветной, может быть теперь сможете мне помочь.
Здравствуйте. Подскажите пожалуйст решение.
ПРИ ПОПАДАНИИ НА СТРАНИЦУ КОРЗИНЫ ДЛЯ ПОКУПОК (cart.php), в зависимоти от выбора пользователем значения на предыдущей странице,
передается GET запрос: magazin/cart?new=$idsealy или magazin/cart?new=$idsealy.
Если например запрос будет равным magazin/cart?new=$idsealy, то в корзине появляется строчка с именем $idsealy и количество $qty=1,
т.е. срабатывает функция display_cart (где foreach ($cart as $idsealy => $qty)),
но также получается, что также вызывается функция display_cart_emt (где foreach ($cart as $idemt => $qty)) и в ней тоже отображается строчка из функции display_cart,
т.е. строчки дублируются.
Происходится путаница между "foreach ($cart as $idsealy => $qty)" и "foreach ($cart as $idemt => $qty)".
Подскажите пожалуйста, как сделать так, чтобы если например вызывается запрос: magazin/cart?new=$idsealy,
то срабатывала только функция display_cart. Нужно сделать какое-то условие, но у меня не получается.
Вот часть, кода отвечающая за содержание и вывод электронной корзины.
PHP:
<?php
session_start();
@ $new = $HTTP_GET_VARS['new'];
if($new)
{
//Выбран новый элемент
if(!isset($HTTP_SESSION_VARS['cart']))
{
$HTTP_SESSION_VARS['cart'] = array();
}
if(isset($HTTP_SESSION_VARS['cart'][$new]))
$HTTP_SESSION_VARS['cart'][$new]++;
else
$HTTP_SESSION_VARS['cart'][$new] = 1;
}
//Если тележка не пуста, то вызываются функции display_cart и display_cart_emt,
//в противно случае выводится соответсвующее сообщение:
if(isset($HTTP_SESSION_VARS['cart']) && array_count_values($HTTP_SESSION_VARS['cart']))
{
display_cart($HTTP_SESSION_VARS['cart']);
display_cart_emt($HTTP_SESSION_VARS['cart']);
}
else
{
echo '<p>Ваша корзина пуста</p>';
}
?>
Функция display_cart и display_cart_emt такие:
[PHP]
<?php
function display_cart($cart)
{
global $HTTP_SESSION_VARS;
// Вывести каждый элемент в виде строки
foreach ($cart as $idsealy => $qty)
{
echo "<p><input type=\"text\" name=\"$idsealy\" value=\"$qty\" size=\"2\"></p>";
}
}
function display_cart_emt($cart)
{
foreach ($cart as $idemt => $qty)
{
echo "<p><input type=\"text\" name=\"$idemt\" value=\"$qty\" size=\"2\"></p>";
}
}
?>
-~{}~ 18.06.05 21:32:
Есть два цикла foreach ($cart as $idsealy => $qty)" и "foreach ($cart as $idemt => $qty), какое условие можно использовать, чтобы например если передается $idsealy, то срабатывает первый цикл и наоборот. Как разделить два цикла при помощи условия, чтобы они не путалиь.
Подскажите пожаалуйста!!!
-~{}~ 18.06.05 21:55:
Я отредактировал тему, теперь код php цветной, может быть теперь сможете мне помочь.