За последние 24 часа нас посетили 72975 программистов и 10218 роботов. Сейчас ищут 2106 программистов ...

Не могу fetchем передать данные из view одного контроллера вдругой (mvc)

Тема в разделе "Сделайте за меня", создана пользователем Slava2293, 16 июл 2023.

Метки:
  1. Slava2293

    Slava2293 Новичок

    С нами с:
    16 июл 2023
    Сообщения:
    7
    Симпатии:
    0
    Мне нужно сделать так, чтобы при нажатии на кнопку во "view" "PostController" данные передавались в "MainController". Там, для начала, я просто хочу их распечатать. Я передаю данные с помощью fetch, но ничего не работает. Подскажите, пожалуйста, в чем проблема?

    https://github.com/ArthurDentPhillip/site1.local - ссылка на проект на github
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.225
    Адрес:
    там-сям
    Проблема в том, что ты не показал что ты делаешь, а предложил изучать твой проект где-то там. Дай минимально необходимый объем кода прямо здесь. Оформи код в ббкод [ code] или [ php ] . Если ты не в силах это сделать, будь готов к издевкам вместо помощи.
     
  3. Slava2293

    Slava2293 Новичок

    С нами с:
    16 июл 2023
    Сообщения:
    7
    Симпатии:
    0
    PHP:
    1. <body>
    2.     <div class="container">
    3.         <div class="row">
    4.             <?php if (!empty($posts)): ?>
    5.                 <?php foreach ($posts as $post): ?>
    6.                     <?php $count = $count + 1; ?>
    7.                     <div class="col-3">
    8.                         <img src="<?= $post['image_path'] ?>" class="card-img-top col_height" alt="...">
    9.                         <div class="card-body">
    10.                             <h5 class="card-title">
    11.                                 <?= $post['name'] ?>
    12.                             </h5>
    13.                             <p class="card-text">
    14.                                 <?= $post['info'] ?>
    15.                             </p>
    16.                             <a href="#" class="btn btn-primary x"
    17.                                 ajax="<?php echo $count; ?>"> Go somewhere</a>
    18.                         </div>
    19.                     </div>
    20.                 <?php endforeach; ?>
    21.             <?php endif; ?>
    22.             <div class="result"></div>
    23.             <button onclick="clickF()" class="btn btn-primary">btn</button>//КНОПКА ЧТОБЫ ПЕРЕЙТИ НА СТРАНИЦУ мэйн контроллера и индекс экшена
    24.         </div>
    25.     </div>
    26.     <script
    27.               src="https://code.jquery.com/jquery-3.7.0.js"
    28.               integrity="sha256-JlqSTELeR4TLqP0OG9dxM7yDPqX1ox/HfgiSLBj8+kM="
    29.               crossorigin="anonymous"></script>
    30.     <script src="/bootstrap/bootstrap.js/script.js"></script>
    31.     <script type="text/javascript">
    32.         // function clickF(){
    33.         //     window.location.href = '/main/index';
    34.         // }
    35.         const dd = document;
    36.         let blocks = dd.querySelectorAll('.x');
    37.         let url =  APP . '/main/index';
    38.         var data = []; //МАССИВ В КОТОРОМ БУДУТ ХРАНИТСЯ ID КЛИКНУТЫХ ЭЛЕМЕНТОВ
    39.         console.log(blocks.length)
    40.         for(let i=0; i<blocks.length; i++){
    41.             console.log(blocks[i]);
    42.             blocks[i].onclick = () => {
    43.             alert(blocks[i].getAttribute('ajax'));
    44.             data.push(blocks[i].getAttribute('ajax'));
    45.             var unique = data.filter((x, i) => data.indexOf(x) === i);
    46.             console.log(unique);
    47.             const result = JSON.stringify(unique);
    48.             fetchF(result, url);
    49.             }
    50.         }
    51.         function fetchF (data, url){
    52.             fetch(url, {
    53.                 "method": "POST",
    54.                 "headers": {
    55.                     "Content-Type":"application/x-www-form-urlencoded: charset=utf-8"
    56.                 },
    57.                 "body": JSON.stringify(data)
    58.             }).then(function(responce){
    59.                 return response.json();
    60.             }).then(function(data){
    61.                 console.log(data)
    62.             })
    63.             setTimeout(() => {
    64.                     window.location.href = '/main/index';
    65. }, 3000);
    66.         }
    - Это view постконтроллера, из которого мне нужно все передать в mainController.php.

    PHP:
    1. $data = file_get_contents("php://input");
    2.     $user = json_decode($data, true);
    3.     echo json_encode($user);
    4.     var_dump($user);
    - А это в mainController я распечатываю то что получил. Но массив который я получаю пустой
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.843
    Симпатии:
    1.338
    Адрес:
    Лень
    как ты передаешь данные ? Большой вопрос
     
  5. Aleksandr.B

    Aleksandr.B Активный пользователь

    С нами с:
    2 фев 2023
    Сообщения:
    160
    Симпатии:
    43
    Адрес:
    Барнаул
    Посмотри в $_POST