За последние 24 часа нас посетили 45358 программистов и 1813 роботов. Сейчас ищут 813 программистов ...

Создание элементарной формы

Тема в разделе "PHP для новичков", создана пользователем koopakaru, 12 мар 2008.

  1. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    использовать header()
    после занесения информации в БД ставишь header('Location: страница'); die; и на ней уже
     
  2. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Luge предложил вполне правильное решение, но... Зачем нажимать рефреш? Ведь если нажать на линк "Новый ввод", то форма не отсылается заново. То есть как бы всё работает. А если вы хотите защититься от повторного ввода в БД тех же самых данных, то не забывайте, что пользователь может снова ввести то же самое в форму и снова отправить. Для этого нужно делать проверку на повторение.
     
  3. koopakaru

    koopakaru Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Адрес:
    Прибалтика
    Luge
    Спасибо за решение. Еще одной функцией больше в моем сознании.
    Что касается линка новый ввод, то здесь идет защита просто от случайного рефреш нажатия...
     
  4. koopakaru

    koopakaru Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Адрес:
    Прибалтика
    Столкнулась сегодня со следующим вопросом в котором абсолютно потерялась

    Как вносить данные в базу, если используются несколько checkbox.

    Например
    переменная $menussn перебирается массивом и соответственно выводит результаты в виде чекбоксов.
    я имею такой вот запрос на update
    Код (Text):
    1. $query3 = "UPDATE ks_ser SET status='on' WHERE snom='$menussn'";
    А вот как дальше заставить выполнить одновременно update для всех выборанных чекбоксов непонимаю.
    Понимаю что как то надо создать массив, но вот как пока не пойму.

    зааранее благодарю
     
  5. JeФoks

    JeФoks Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Имеется текстовое поле "dlinna". Вот проверка на то, что в поле введены данные:
    PHP:
    1.  
    2. $fields = array('dlinna',);
    3.  $error_text = array('dlinna'=>'Не указана длинна!',);
    4.  $values = array();
    5.  $errors = array();
    6.   if (strtoupper($_SERVER['REQUEST_METHOD'])=='POST') // проверка на то, что метод вызова = POST, т.е. получение данных из формы.
    7.      {
    8.          foreach ($fields as $field)
    9.              {
    10.                  if (!empty($_POST[$field])) { $values[$field] = htmlspecialchars($_POST[$field]); } else { $values[$field]=''; $errors[] = $field; }
    11.              }
    12.          foreach ($errors as $error) echo '<font color="red">' .$error_text[$error].'</font><br>';
    13.      }
    как сделать, чтобы в поле можно было вводить только цифры? Если введены другие символы, буквы, выводилась ошибка.
     
  6. koopakaru

    koopakaru Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Адрес:
    Прибалтика
    использовать регулярные выражения.
    Где-то уже проходило... поищите в поиске "регулярные выражения"
     
  7. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    JeФoks регулярные выражения Вам в помощь.
     
  8. JeФoks

    JeФoks Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Да, спасибо, разобрался.

    Теперь другая загвоздка:
    делаю калькулятор заборов, ну и есть место, где пользователь выбирает, нужны ли ему продольные балки, соответственно, оставляет или убирает галочку из чекбокса...
    чекбокс и обработчик на одной странице (php в html-e).
    вот есть чекбокс, а чот обработать не получается, даже при снятой галочке всё равно считает, будто она стоит, посмотрите, может что не так делаю:

    Код (Text):
    1.  
    2. <input type="checkbox" name="lagi" value="b1" checked>Продольные лаги (40х20х1,5)
    3.  
    4. ...
    5.  
    6. if ($_POST['lagi'] = TRUE) $lagi_itog = $dlinna*116; else $lagi_itog = 0;
    $dlinna определена раннее.
    пробовал вместо TRUE b1, всё равно не катит.
    Неужели это потому что страница обновляется при нажатии на кнопку, а чекбокс-то по умолчанию выбранным стоит...[/php]
     
  9. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    PHP:
    1. <?php
    2. if ($_POST['lagi'] == 'on') $lagi_itog = $dlinna*116; else $lagi_itog = 0;
    3. ?>
     
  10. JeФoks

    JeФoks Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Спасибо, Johnatan, только сделал немного по другому:

    PHP:
    1. if ($_POST['lagi'] == 'b1') $lagi_num = $dlinna*2; else $lagi_num = 0;
    вобщем, on поменял на b1, иначе не работало.
     
  11. JeФoks

    JeФoks Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Ещё вопросик:
    как в текстовом поле вывести значение из определённой ячейки БД?

    HTML:
    1. <input type="text" name="name" size="20" maxlength="40" value="<?php вот здесь вот ?>">
    коннектимся к БД, выбираем таблицу, а дальше?
    ну и что описывать в value?
     
  12. JeФoks

    JeФoks Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Чот не получается у меня в текстовом поле вывести значение из определённой ячейки БД. Вот чо наделал:
    Код (Text):
    1.  
    2. <?...
    3. if (!mysql_select_db($database, $dblink))
    4. {
    5.     echo "<br>не могу выбрать БД<br>";
    6.     exit();
    7. }
    8. $str_sql_query = "SELECT price FROM calc";
    9. if (!$result = mysql_query($str_sql_query, $dblink))
    10. {
    11.     echo "<br>Не могу выполнить запрос";
    12.     exit();
    13. }
    14. ?>
    15. <input type="text" name="name" size="20" maxlength="40" value="<?=$values['price']?>">
    В бд таблица calc со столбцами id, name и price.