За последние 24 часа нас посетили 17892 программиста и 1719 роботов. Сейчас ищут 953 программиста ...

Помогите написать wishlist отмеченных материалов

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

  1. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    На сколько я понимаю нужно создать кнопку типа - "Добавить в избранное" или "Нравится" или "Отметить статью/товар" или "Посмотреть позже". Смысл которой сохранить (занеся его в сессию) понравившийся материал в отдельный список. Который впоследствии должен отобразиться в каком-нибудь блоке.

    Чистого решенного примера не жду. Подскажите примерно куда копать.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    @denis01, не открываются примеры твои
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @igordata сайт их видимо глючит

    @Igorby

    PHP:
    1. <?php
    2.  
    3. $array_db = array(
    4. 1 => array(
    5.   'q' => 'you skin color',
    6.   'a' => array(1=>'white', 'black') ),
    7.  
    8. 2 => array(
    9.   'q' => 'sky color',
    10.   'a' => array(1=>'white', 'blue', 'gray') ),
    11. );
    12.  
    13. function render_checkbox($array_db, $q = array())
    14. {
    15.     $buff = "<form action='' method='post'>".PHP_EOL;
    16.  
    17.     foreach ($array_db as $key => $value) {
    18.  
    19.         if (is_array($value) && count($value) > 0) {
    20.  
    21.             $buff .= "<br>Question: <b>{$value['q']}</b><br>".PHP_EOL;
    22.             foreach ($value['a'] as $a_id => $a_text) {
    23.  
    24.                 $checked = '';
    25.                 if (isset($q[$key]) && is_array($q[$key]) && in_array($a_id, $q[$key]) ) {
    26.                     $checked = ' checked';
    27.                 }
    28.  
    29.                 $buff .= "Answer: <input type=checkbox name=q[$key][] value='$a_id'$checked>$a_text<br>".PHP_EOL;
    30.             }
    31.         }
    32.     }
    33.  
    34.     $buff .= "<input type=submit><br>";
    35.     $buff .= "</form>";
    36.  
    37.     return $buff;
    38. }
    39.  
    40. $q = isset($_POST['q'])?$_POST['q']:array();
    41.  
    42. echo render_checkbox($array_db, $q);
    43.  
    44. echo "<hr>";
    45.  
    46.  
    47. if (isset($q) && is_array($q) && count($q) > 0) {
    48.     foreach ($q as $q_id => $value) {
    49.         echo "<br><b>Question: ".$array_db[$q_id]['q']."</b><br>".PHP_EOL;
    50.         foreach ($value as $a_id) {
    51.             echo "Answer: ".$array_db[$q_id]['a'][$a_id]."<br>".PHP_EOL;
    52.         }
    53.     }
    54. }
    55.  
    56.  
    57. echo "<hr><pre>";
    58. echo "</pre>";
    PHP:
    1. <!DOCTYPE HTML>
    2. <html>
    3. <head>
    4.     <meta charset="UTF-8">
    5.     <title></title>
    6. </head>
    7. <body>
    8. <?php
    9.  
    10. $array_db = array(1 => 'example1', 'example2', 'example3', 'example4', 'example5', 'example6');
    11.  
    12. function render_checkbox($array_db, $boxes = array())
    13. {
    14.     $buff = "<form action='' method='post'>".PHP_EOL;
    15.  
    16.     foreach ($array_db as $key => $checkbox) {
    17.  
    18.         $checked = '';
    19.  
    20.         if (isset($boxes[$key])) {
    21.             $checked = ' checked';
    22.         }
    23.  
    24.         $buff .= "<input type=checkbox name=boxes[$key] value='1'$checked>$checkbox<br>".PHP_EOL;
    25.     }
    26.  
    27.     $buff .= "<input type=submit><br>";
    28.     $buff .= "</form>";
    29.  
    30.     return $buff;
    31. }
    32.  
    33. $boxes = isset($_POST['boxes'])?$_POST['boxes']:array();
    34.  
    35. echo render_checkbox($array_db, $boxes);
    36.  
    37.  
    38. echo "<pre>";
    39. var_dump($boxes);
    40. echo "</pre>";
    41. ?>
    42. </body>
    43. </html>
     
  5. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Спасибо. На сколько я понял php, позволяет осуществлять подобное лишь посредством submit(-а) и checkbox(-а). А если допустим сама кнопка должна будет быть так называемым checkbox(-ом), и отправлять методом post в сессию значение собственной ссылки? Как в этом случае поступить?
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    опиши подробнее

    не обязательно, можно отправить запрос нажатием на ссылку, кнопку или ещё без перезагрузки страницы javascript ajax
     
  7. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Сорянствую за задержку с ответом. Нужно примерно как в магазине, опция корзина. Человек зашедший на страницу должен иметь возможность пометить ее как понравившуюся.
    Наверняка мне стоит менять направление в сторону Javascript
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    получилось записать эту информацию в сессию или в cookie?

    Можно на javascript писать в cookie например id страницы если он есть в базе например, и cookie будут доступны в PHP если нужно будет ими воспользоваться