За последние 24 часа нас посетили 17415 программистов и 1683 робота. Сейчас ищут 900 программистов ...

Массив

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

  1. missAisa

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

    С нами с:
    7 июн 2011
    Сообщения:
    36
    Симпатии:
    0
    Адрес:
    Украина, Краснодон
    Добрый день форумчане!
    Есть массив:
    PHP:
    1. <?php
    2.  
    3.  if
    4. (count ($_POST['a'][1]))
    5. {  
    6.  echo "Сайт состоит из страниц до 5 шт.";
    7. }
    8.  
    9. else if(count($_POST['a'][2]))
    10. {
    11.  echo"Сайт состоит из страниц после 5 шт.";}
    12.  
    13. ?>
    HTML:
    1. до 5 страниц <input type="checkbox" name="a[1]" value="50"><br>
    2.  после 5 страниц <input type="checkbox" name="a[2]" value="300"><br>
    Если отмечаем до 5 страниц - выводится - "до 5 страниц"
    Если отмечаем поле'после 5 страниц' - выводится-'после 5 страниц'
    А если ничего не отмечаем - выводится 'до 5 страниц'.

    Вопрос: как сделать, чтобы если поля не отмечаются, ничего не выводится.

    Если такой вариант:
    PHP:
    1. if (!empty($_POST['a'][1]) && !empty($_POST['a'][2])) {
    2.  
    3.     if (count($_POST['a'][1])) {  
    4.         echo "Сайт состоит из страниц до 5 шт.";
    5.     } else if(count($_POST['a'][2])) {
    6.         echo"Сайт состоит из страниц после 5 шт.";
    7.     }
    8. }
    если отмечаем поле "после 5 страниц" -ничего не выводится.
    Если ничего не отмечает - выводится "до 5 страниц"
    Если отмечаем поле"до 5 страниц" - выводится "до 5 страниц"
     
  2. missAisa

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

    С нами с:
    7 июн 2011
    Сообщения:
    36
    Симпатии:
    0
    Адрес:
    Украина, Краснодон
    Вот так работает:
    PHP:
    1. <?php
    2.  
    3.  
    4. if (!empty($_POST['a'])){
    5.  
    6.     if (isset($_POST['a'][1])) {  
    7.         echo "Сайт состоит из страниц до 5 шт.";
    8.     } else if(isset($_POST['a'][2])) {
    9.         echo"Сайт состоит из страниц после 5 шт.";
    10.     }
    11. }
    12.  
    13. ?>
    Только если ставить две галки, выводит - 'до 5 страниц', а надо все поля отмеченные.
     
  3. dots_rei

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

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    выводит только "до 5 страниц" в последнем случае из-за конструкции else if (вторая проверка просто не срабатывает).

    "все поля отмеченные" - это чтоб оба предложения вывелись? тогда уберите else в 8й строчке
     
  4. missAisa

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

    С нами с:
    7 июн 2011
    Сообщения:
    36
    Симпатии:
    0
    Адрес:
    Украина, Краснодон
    Спасибо dots_rei! Все заработало!
     
  5. missAisa

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

    С нами с:
    7 июн 2011
    Сообщения:
    36
    Симпатии:
    0
    Адрес:
    Украина, Краснодон
    Не могу разобраться вот с таким массивом:
    HTML:
    1.  <select name="a[99]" size="1">    
    2.     <option value="0">нет</option>
    3.     <option value="20">да</option></select>
    PHP:
    1. <?php
    2.      if (!empty($_POST['a']))  {
    3.     if ($_POST['a'][99]==0) {  
    4.         echo "нет. ";
    5.     }  if($_POST['a'][99]==20) {
    6.         echo"да. ";
    7.     } }  
    8.  ?>
    9.  
    В этом случае выводит - если поля не отмечаем - "нет"
    - если отмечаем 'нет' - "нет"
    -если отмечаем 'да' - "да"

    Как добиться, ели ничего не отмечаем, ничего не выводит?
     
  6. Mamont

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

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    if ($_POST['a'][99]==='0') {

    ps. Может стоит книжку по пхп почитать?
     
  7. missAisa

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

    С нами с:
    7 июн 2011
    Сообщения:
    36
    Симпатии:
    0
    Адрес:
    Украина, Краснодон
    Ну и чего ты добился этим оператором эквивалентности? Мне не надо сравнивать типы.
    P.S. Лишь бы что-то ляпнуть.
     
  8. Mamont

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

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    missAisa
    Ответил на тот вопрос, который был поставлен.
    Если получаешь ответ не тот, который ожидаешь - возможно вопрос не правильно сформулирован?
     
  9. missAisa

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

    С нами с:
    7 июн 2011
    Сообщения:
    36
    Симпатии:
    0
    Адрес:
    Украина, Краснодон
    сделала так:

    HTML:
    1. <select name="b[99]" size="1">        <option value="-1"></option>  <option value="0">нет</option>   <option value="20">да</option>
    PHP:
    1. <?php
    2.  
    3.     if (!empty($_POST['b']))  {
    4.     if ($_POST['b'][99]==-1) {
    5.         echo "";}
    6.      if ($_POST['b'][99]==0) {
    7.         echo "нет. ";
    8.     }  if($_POST['b'][99]==20) {
    9.         echo"да. ";
    10.     } }  
    11.  
    12. ?>
    13.  
    Зато все работает. Заминка, я так поняла в этом <select>, который визуально уже отмечен. Если есть еще варианты, напишите.