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

Форум PHP

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

 

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

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

тема: Не получается взять данные из $_POST

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

 
 автор: sim5   (08.09.2010 в 21:21)   письмо автору
 
   для: lElectroHardl   (08.09.2010 в 21:08)
 

Это не скрипт, это пример. А вот \n напрашивается, если вы определяете переменную, например, error, изначально с пустым значением. Далее проверяете поля формы, и если не отвечает условию, то добавляете в эту переменную соответствующее сообщение с переносом строки. По окончании проверки проверяете значение этой перменной, и если оно не пустое, то выводите ее и отменяете отправку формы. Вот в этом случае у вас будет сообщение из строк о каждом поле. И фокус можно установить у первого поля, да и вообще поместить сообщения рядом с полями.
То о чем вы ранее писали (else if), я удалил потому, что не правильно выразился в запарке (не до вас было) - в этом случае пользователь будет получать сообщение, далее прочитав его, следующее и т.д. (скрипт не остановит выполнение, дав время на исправление ошибки). Значит ему надо будет запомнить, что и где он накосячил, и не дай бог таких полей как и списков будет тоже 20 или более штук.
Можно вообще наколбасить до бессовестного красиво, но логично все это должно быть, а не абы как и неудобное для пользователя.

  Ответить  
 
 автор: lElectroHardl   (08.09.2010 в 21:08)   письмо автору
 
   для: sim5   (08.09.2010 в 20:36)
 

Спасибо за скрипт.
Естественно далее данные обрабатывает сервер.

  Ответить  
 
 автор: sim5   (08.09.2010 в 20:36)   письмо автору
 
   для: lElectroHardl   (08.09.2010 в 20:10)
 

Зачем \n? Вот вы можете объяснить к чему вы этот перевод строки вставляете в сообщение, если у вас оно одной строкой?
По всем вопросам JS, на форуме есть соответствующий раздел.
<script>
function func(f) {
  var n = 0;
  var m = f.getElementsByTagName("select");
  for(i=0; i<m.length; i++) if(m[i].value > 0) n++; 
  if(n<2) {
    alert("Not selected!");
    return false;
  }
}
</script>

<form action="" onsubmit="return func(this)">
<select name="id_select[]">
 <option value="0" SELECTED>Select...</option>
 <option value="1">Option 1</option>
 <option value="2">Option 2</option>
</select>
<select name="id_select[]">
 <option value="0" SELECTED>Select...</option>
 <option value="1">Option 1</option>
 <option value="2">Option 2</option>
</select>
<select name="id_select[]">
 <option value="0" SELECTED>Select...</option>
 <option value="1">Option 1</option>
 <option value="2">Option 2</option>
</select>
<input type="submit" value="Send">
</form>

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

  Ответить  
 
 автор: lElectroHardl   (08.09.2010 в 20:10)   письмо автору
 
   для: sim5   (08.09.2010 в 19:53)
 

Вот смотрите. Нужно проверить, было ли выбрано минимум 2 Селекта.
А массив формируется исходя из (<input type="checkbox" name="$name[]" />)

Подправил, по вашему совету:

// кусок:
    if (form.portion.value < 1)
    {
        e_mes += 'Сколько порций в рецепте?\n';
        return_value = false;
    }
    if (form.img.value == "")
    {
        e_mes += 'Рецепт без фотографии?.\n';
        return_value = false;
    }
    if (form.preparation.value.length < 200)
    {
        e_mes += 'А как готовить блюдо?';
        return_value = false;
    }
    
    if(!return_value)
    alert(e_mes);
    return return_value;

  Ответить  
 
 автор: sim5   (08.09.2010 в 19:53)   письмо автору
 
   для: lElectroHardl   (08.09.2010 в 19:50)
 

Да не важно, прочли или нет - лажа полная, ибо лишнее и непонятное к чему. Заново лучше прочтите.

Какого массива? И зачем его подсчитывать, вы можете объяснить?

  Ответить  
 
 автор: lElectroHardl   (08.09.2010 в 19:50)   письмо автору
 
   для: sim5   (08.09.2010 в 19:46)
 

Доработаю этот момент.

Помогите с подсчетом элементов массива пожалуйста.
Через
value < 1
не хочет, через
length < 1
тоже не хочет...
И еще, <option> у меня генерирует сам скрипт JS.

  Ответить  
 
 автор: sim5   (08.09.2010 в 19:46)   письмо автору
 
   для: lElectroHardl   (08.09.2010 в 19:40)
 

Ерунда все это... Мне сейчас не до объяснения, но думайте, елки палки....
Проверяйте все обязательные поля для заполения, ну или все поля на корректный ввод. Фрмируйте список сообщений (только в этом случвае вывод \n в них логичен). По значению этого списка принимайте решение на отправку или нет формы.
В проивном случае, сразу же при первой ошибке return false. Не логично у вас все построено.

  Ответить  
 
 автор: lElectroHardl   (08.09.2010 в 19:40)   письмо автору
 
   для: sim5   (08.09.2010 в 19:00)
 

>фокус
у меня же стоит elseif. Т.е. проверка идет поэлементно (сначала одно поле, затем второе...).

Что бы узнать, выбрал ли человек хотя бы 2 select`а.

  Ответить  
 
 автор: sim5   (08.09.2010 в 19:00)   письмо автору
 
   для: lElectroHardl   (08.09.2010 в 18:53)
 

>Не, фокус работает отменно.

Даже так? Ну что за вздор вы несете - фокус будет установлен последнему элементу с ошибкой. Хотя мне собственно все равно, если это нормально, то ....

Зачем подсчитать?

  Ответить  
 
 автор: lElectroHardl   (08.09.2010 в 18:53)   письмо автору
 
   для: sim5   (08.09.2010 в 18:44)
 

Не, фокус работает отменно.
Только есть одна загвоздочка.

У меня дальше в форме есть 20 select`ов, у каждого из которых свое значение в массиве id_select[].
Как мне подсчитать к-во селектов, где поле != 0.
Заранее спасибо.

  Ответить  

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

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

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