За последние 24 часа нас посетили 50324 программиста и 1691 робот. Сейчас ищут 1163 программиста ...

Вывод элемента массива, записанного в <input type=hidden

Тема в разделе "PHP для новичков", создана пользователем amen, 5 ноя 2009.

  1. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Помогите с задачкой:


    PHP:
    1. <?php
    2. $qr = "SELECT id FROM table"
    3. $rs = mysql_query($qr);
    4. echo "<form action="1.php" method="POST">";
    5. while ($rw = mysql_fetch_array($rs))
    6. {
    7. echo $rw['id'];
    8. echo "<input type="submit" name="ok" value="ok">";
    9. echo "<input type="hidden" name="id[]" value="$rw['id']">";
    10. }
    11. ?>
    12. </form>
    итого - вывод ID - кнопка

    вопрос - как в файле 1.php выводить id из массива id[], соответствующий нажатой кнопке?
     
  2. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    никак.

    PHP:
    1. <form method="post">
    2. <input type="submit" name="ok[1]">
    3. <input type="submit" name="ok[2]">
    4. <input type="submit" name="ok[3]">
    5. </form>
    6. <?php
    7. var_dump($_POST);
    8. ?>
     
  3. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Имеется ввиду, что можно, только без хиддена?
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
  5. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Ух ты! Дайте-ка подумать. Значит в цикле инпут должен выглядеть так?

    PHP:
    1. echo "<input type="submit" name="$rw['id']" value="ok">";
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    нет.
    Делать надо так, как я показал. Имя переменной не может быть цифрой.

    Цифра в качестве ключа это и есть id.
     
  7. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    ты сам вводишь инпуты по одному, у меня же цикл.
    ...
    тогда получается так?

    echo "<input type="submit" name="id['$rw['id']']" value="ok">";

    ...
    PS. в моём примере id не автоинкрементный.
     
  8. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Абсолютно не важно какой у тебя там id. Хоть строковой - ямегасуперпуперид

    Если я буду писать код за тебя, то зачем нужен ты?

    Я дал идею, - как сделать, - а ты думай над реализацией.

    Поэтому
    1. Пишешь код.
    2. Проверяешь.
    3. Результаты устраивают? Пользуйся.
    4. Не устраивают? Выясняешь что не устраивает и как это можно изменить.
    5. Если после долгих самостоятельных попыток не получается - приходишь на форум и просишь дать идею(а не код).
    6. Вовращаяемся к п.1.

    Кроме вышеописанного еще нужно.
    а) Как правильно читать мануал
    б) Читать умные книжки.
    в) общаться на форуме (помогая решать другим разнообразные задачи, с которыми ты сам не столкнулся бы, ты получаешь опыт)

    Только тогда ты научишься программировать самостоятельно.

    P.S. Если тебе это конечно нужно.
     
  9. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Ты чертовски прав.
    Вопрос напоследок - если кроме id нужно записать ещё несколько полей - тогда что? многомрный массив?
     
  10. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Можно и многомерный массив. Но...

    Несколько полей чего?
    Как эти поля связаны с id?

    Попробуй сформулировать задачу. И ты сам увидишь решение.
     
  11. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Полей таблицы, из которой я вытаскиваю id. Там есть ещё name, comment, data... их тоже нужно записывать и передавать.
     
  12. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Зачем? Чтобы просто показать? :)

    Выбирает-то пользователь, одну конкретную запись, котороая однозначно определяется по id.
    Все остальное лишь сопутствующая информация для пользователя.
     
  13. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Вообще-то это админка. Ну да ладно, оставил один айди и по нему в запросе вывел всё остальное.
    Вот такой инпут получился:

    HTML:
    1. <input type="submit" name="edit[]" value="<?echo $rw['id']?>" title="Редактировать коментарий">  
    Всё работает, только не красиво, что надписи на кнопках - номерА id. Можно это как-то исправить?
     
  14. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Чёрт, не получается. По-моему какие-то косяки с кавычками и экранированием...

    PHP:
    1. <?echo "<input type=\"submit\" name=\"edit[".$rw['id']."]\" value=\"P\" title=\"Редактировать коментарий\">"; ?>
    В $_POST['edit'] сохраняется строка "Array"
    Подскажите, что не так.
     
  15. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    print_r($_POST['edit']);
     
  16. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Так... выходит нужный ID находится в ключе...

    PHP:
    1. <?$idd = $_POST['edit'];
    2. $iddd = key($idd);
    3. echo $iddd; // вывод - что надо, показывает нужный индекс
    4.  
    5. // Запрос
    6. $query = "SELECT id, id_news, date_com, DATE_FORMAT(date_com,'%d-%m-%Y %H:%i')as date_reg, name_com, comm, new
    7.          FROM comments
    8.          WHERE id IN (".implode(",", $iddd).")";
    9. $result = mysql_query($query);
    выдаёт ошибку

    Не понимаю.
    Simpliest, подкинь плиз ещё идейку...
     
  17. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Разбил запрос
    почему-то ему не нравится $ddd
     
  18. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
  19. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Ступил, да
    Simpliest, спасибо за помощь!