Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Чекбокс: отмечаем/снимаем, отображаем в базе

Сообщения:  [1-10]    [11-20]   [21-30]  [31-33] 

 
 автор: sim5   (14.03.2010 в 13:42)   письмо автору
 
   для: Лена   (14.03.2010 в 13:23)
 

Какова роль администратора в добавлении?
Если только администратор имеет право выставить (добавить) пять товаров для торгов, то почему выбор/сброс товара обуславливается условием if(!$count_auc<6)?

Что за правила на этом аукционе?

Еще раз повторяю, это:
<form method='post' action='auction_details.php?auction_id=" . $row["auction_id"] . "&idset=" . $row["auction_id"] . "'>
в корне не верно!

  Ответить  
 
 автор: Лена   (14.03.2010 в 13:23)   письмо автору
 
   для: sim5   (14.03.2010 в 13:17)
 

У меня так получилось:

<?php
if(!$count_auc<6){

$id = isset($_GET['idset']) ? intval($_GET['idset']) : intval($_GET['auction_id']);
    
if(isset(
$_GET['idset'])) 
    
mysql_query("UPDATE anticvar_auctions SET intrest = intrest ^ 1 WHERE auction_id = " $id);


$s "SELECT name, auction_id,intrest
             FROM anticvar_auctions
             WHERE auction_id =" 
.  $id;
              
$query =  mysql_query($s);
            if(!
$query) exit(mysql_error());
             
$row mysql_fetch_assoc($query);
    echo 
"
    <table width=100% border=0 cellspacing=3 cellpadding=3 class='border'>
    <tr><td colspan = 4>
    <form method='post' action='auction_details.php?auction_id=" 
$row["auction_id"] . "&idset=" $row["auction_id"] . "'>
    <input type='checkbox' name='intrest'
    onclick='this.form.submit()' "
.($row["intrest"] ? 'checked' '') . "/>
    &nbsp;&nbsp;&nbsp;&nbsp;Поместить товар в раздел
    <span style = 'font-weight:bold;color:#F00;'>\"Это интересно\"</span>
    </form>
    </td></tr></table>
    "
;
}
?>


Если я пытаюсь добавить шестой товар, то чекбокс для него выводится. Хотя на самом деле этот чекбокс не должен выводиться.

  Ответить  
 
 автор: sim5   (14.03.2010 в 13:17)   письмо автору
 
   для: Лена   (14.03.2010 в 13:10)
 

Значит вы допустили ошибку в логике, скорее всего не верна проверка запросов - то что у меня в примере, годится только для примера, а не для реальной страницы. ID для состояния должен передваться именно при отправке формы, а других запросов здесь не должно быть.

  Ответить  
 
 автор: Лена   (14.03.2010 в 13:10)   письмо автору
 
   для: sim5   (14.03.2010 в 12:52)
 

Самое интересное, что с этой путаницей - работает. Без нее - нет.

  Ответить  
 
 автор: sim5   (14.03.2010 в 12:52)   письмо автору
 
   для: Лена   (14.03.2010 в 12:36)
 

<form method='post' action='auction_details.php?auction_id=" . $row["auction_id"] . "&idset=" . $row["auction_id"] . "'>
тогда путаница получается.

  Ответить  
 
 автор: Лена   (14.03.2010 в 12:36)   письмо автору
 
   для: Лена   (14.03.2010 в 12:25)
 

На хостинге сначала не работало. Пришлось немного поменять гет-параметры, которые передает форма:
<form method='post' action='auction_details.php?auction_id=" . $row["auction_id"] . "&idset=" . $row["auction_id"] . "'>
Одна проблема осталась.
Допустим, у нас в разделе "Это интересно" уже есть 5 товаров. Мы хотим снять чекбокс с одного из товаров, но мы этого сделать не можем, потому что у нас теперь не видно вообще этогочекбокса. Надо, получается, еще куда-то запоминать id`ы тех чекбоксов, которые отмечены и для них выводить чекбокс.

  Ответить  
 
 автор: Лена   (14.03.2010 в 12:25)   письмо автору
 
   для: sim5   (14.03.2010 в 12:19)
 

Тогда все получилось. Большое спасибо. Можно жениться :)))

<?php

$q 
"SELECT COUNT(*) FROM anticvar_auctions WHERE intrest = 1";
$res mysql_query($q);
    if(!
$res) exit(mysql_error());
    
$count_auc mysql_result($res,0);

if(
$count_auc<5){

$id = isset($_GET['idset']) ? intval($_GET['idset']) : intval($_GET['auction_id']);
    
if(isset(
$_GET['idset'])) 
    
mysql_query("UPDATE anticvar_auctions SET intrest = intrest ^ 1 WHERE auction_id = " $id);


$s "SELECT name, auction_id,intrest
             FROM anticvar_auctions
             WHERE auction_id =" 
.  $id;
              
$query =  mysql_query($s);
            if(!
$query) exit(mysql_error());
             
$row mysql_fetch_assoc($query);
    echo 
"
    <table width=100% border=0 cellspacing=3 cellpadding=3 class='border'>
    <tr><td colspan = 4>
    <form method='post' action='?idset=" 
$row["auction_id"] . "'>
    <input type='checkbox' name='intrest'
    onclick='this.form.submit()' "
.($row["intrest"] ? 'checked' '') . "/>
    &nbsp;&nbsp;&nbsp;&nbsp;Поместить товар в раздел
    <span style = 'font-weight:bold;color:#F00;'>\"Это интересно\"</span>
    </form>
    </td></tr></table>
    "
;
}
?>

  Ответить  
 
 автор: sim5   (14.03.2010 в 12:19)   письмо автору
 
   для: Лена   (14.03.2010 в 11:55)
 

Ну значит и проблемы нет.

  Ответить  
 
 автор: Лена   (14.03.2010 в 11:55)   письмо автору
 
   для: sim5   (14.03.2010 в 07:22)
 

Согласно условию задачи, ставить чекбоксы может только админ сайта - один человек. Тут, наверное, достаточно проверки, показывать или не показывать ему чекбокс.

  Ответить  
 
 автор: sim5   (14.03.2010 в 07:22)   письмо автору
 
   для: Лена   (13.03.2010 в 22:56)
 

Ну вот, оказывается предполагать нужно было о гареме. )

Перед отправкой формы клиенту решать, может ли он вообще иметь инструмент выбора (чекбокс). Аукцион, значит в режиме реального времени пользователь N должен видеть положение с квотой на сервере, т.е. - Ajax.
Хотя реальность времени для сети с ее задержками... думаю, что все равно сервер должен проверять возможно ли добавление, и одному из выбравших, лишнему, выдать сообщение.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-33] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования