За последние 24 часа нас посетили 18854 программиста и 1602 робота. Сейчас ищут 1008 программистов ...

ajax запрос, свой HTML

Тема в разделе "Сделайте за меня", создана пользователем Temurumaru, 4 янв 2022.

Метки:
  1. Temurumaru

    Temurumaru Новичок

    С нами с:
    4 янв 2022
    Сообщения:
    8
    Симпатии:
    0
    Как сделать так чтобы при ajax запросе, php возвращал html своейже страницы?!?!?!
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.579
    Симпатии:
    1.760
    Ну а в чём, собственно, проблема? AJAX-запрос для пыхи ничем не отличается от любого другого, возвращайте, что хотите.
     
  3. Temurumaru

    Temurumaru Новичок

    С нами с:
    4 янв 2022
    Сообщения:
    8
    Симпатии:
    0
    вы не поняли я через js отправляю POST запрос на php файл потом php файл генерит html тоесть он типо выводит на интерфейс частичку сайта и я через ajax немогу вернуть весь выведенный html тесть саму страничку пж помогите как?
     
  4. Temurumaru

    Temurumaru Новичок

    С нами с:
    4 янв 2022
    Сообщения:
    8
    Симпатии:
    0
    вот часть кода
    PHP:
    1. <?php
    2.  
    3. $folder_level = 1;
    4.  
    5. $title = "Users List";
    6. $author = "Temurumaru<Tulenov Temur>";
    7.  
    8. require "../blocks/main.block.php";
    9.  
    10. if(isset($post['token'])) {
    11.   if(
    12.     R::count(
    13.       "users",
    14.       "privilege_level = 10 AND token = ?",
    15.       [
    16.         $post['token']
    17.       ]) > 0
    18.   ) {
    19.  
    20.     $limit = 8;
    21.  
    22.     $needles = R::count('users');
    23.  
    24.     $n2 = true;
    25.     if($needles < 1) $n2 = false;
    26.  
    27.     $usr_total_pages = ceil($needles / $limit);
    28.  
    29.     if($usr_total_pages < 2) $n2 = false;
    30.  
    31.     if(isset($get['usr_page'])) {
    32.       $usr_page = $get['usr_page'];
    33.       if($usr_page < 1 || $usr_page > $usr_total_pages) {to_page("$MAIN_PATH");}
    34.     } else {
    35.       $usr_page = 1;
    36.     }
    37.  
    38.     $users = R::find("users","ORDER BY id DESC LIMIT " . (($usr_page-1)*$limit).', '.$limit);
    39.   } else {
    40.     return false;
    41.   }
    42. } else {
    43.   return false;
    44. }
    45. foreach ($users as $usr) {
    46. if(isset($usr['name'])) $usr_name = "The Name was not set."
    47. ?>
    48.   <hr>
    49.     <div class="lColumnBlocks col">
    50.         <p class="nTitle">
    51.             <a href="tools/office_view.php?usr_id=<?php echo $usr['id']; ?>">
    52.         <u>
    53.           <?php echo htmlentities($usr['nick']); ?>
    54.         </u>
    55.       </a>
    56.       <a class="a" style="float: right; margin: 1%;" href="tools/office.php?usr_id=<?php echo $usr['id']; ?>">Edit</a>
    57.       <a class="a" style="float: right; margin: 1%; color: #fe0000;cursor: pointer;" onclick="clickDeactivate(<?php echo $usr['id']; ?>, '<?php echo htmlentities($usr['nick']);?>')">Deactivate</a>
    58.     </p>
    59.         <p class="nDescription">
    60.       <?php echo $usr_name; ?>
    61.         </p>
    62.     <p class="nDate">
    63.             <?php echo htmlentities($usr['email']); ?>
    64.         </p>
    65.     <p class="nDate">
    66.             <?php echo htmlentities($usr['reg_data']); ?>
    67.         </p>
    68.     </div>
    69. <?php } ?>
    70. <?php if($n2) {?>
    71. <hr>
    72. <div class="paginator">
    73.   <?php if(!($usr_page <= 1)) {?>
    74.     <a href='<?php echo $MAIN_PATH."/personal.php?usr_page=1";?>'><u>Start</u></a></u>
    75.     &nbsp;
    76.     <a href='<?php echo $MAIN_PATH."/personal.php?usr_page=".$usr_page-1;?>'><u>&lt;</u></a></u>
    77.   <?php }?>
    78.   <!-- &nbsp; -->
    79.   <?php
    80.     $st = $usr_page - 3;
    81.     if($st < 1) $st = 1;
    82.     $en = $usr_page + 4;
    83.     if($en > ($usr_total_pages)) $en = $usr_total_pages+1;
    84.     while ($st != $en) {
    85.   ?>
    86.     <a <?php if($usr_page==$st){echo"class='pgn-a'";}?> href='<?php echo $MAIN_PATH."/personal.php?usr_page=".$st;?>'><u><?php echo $st;?></u></a>
    87.  
    88.   <?php
    89.     $st++; }
    90.   ?>
    91.  
    92.   <?php if(!($usr_page >= $usr_total_pages)) {?>
    93.     <a href='<?php echo $MAIN_PATH."/personal.php?usr_page=".$usr_page+1;?>'><u>&gt;</u></a></u>
    94.     &nbsp;
    95.     <a href='<?php echo $MAIN_PATH."/personal.php?usr_page=".$usr_total_pages;?>'><u>End</u></a></u>
    96.   <?php }?>
    97. </div>
    98. <?php }
    99. ?>
     
  5. Temurumaru

    Temurumaru Новичок

    С нами с:
    4 янв 2022
    Сообщения:
    8
    Симпатии:
    0
    как вы видите foreach использует html а не html внутри переменой, вот я и не могу простым return вернуть все выведенное
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.835
    Симпатии:
    651
    Откройте уже для себя единую точку входа и отправляйте запрос не «на php файл», а за нужным фрагментом по соотв. адресу. Хотя что мешает делать AJAX-запросы на разные php-файлы с разными GET-параметрами, не понятно.
    --- Добавлено ---
    А... кажись, я понял, в чем вопрос. AJAX-запросы можно различать по спец. заголовку. Это если вы отдаете и основной фрагмент, и целиком страницу по одному и тому же адресу. Но вам ничто не мешает разнести обработку обычных и AJAX-запросов по разным адресам. С единой точкой входа это сделать достаточно просто. Но а в вашем случае можно использовать спец. GET-параметр, например /file.php?ajax[=1], или Path-info, например /file.php/ajax ;)
    --- Добавлено ---
    Именно с выводом результатов AJAX-запросов проблема? Тогда это к JS. В сети куча примеров. Вообще странно, если вопрос в этом. С этого надо было начинать, а уже потом заниматься обеспечением данных для фронта. Или вы переносите на AJAX старый вариант сайта?
     
  7. Temurumaru

    Temurumaru Новичок

    С нами с:
    4 янв 2022
    Сообщения:
    8
    Симпатии:
    0
    Спасибо за ответ но я мало что понял я начинающий и я эту проблему уже 3 дня не могу найти решение,
    вот что я имею введу: у меня есть php файл в котором просто:
    Код (Text):
    1. <?php
    2. echo "Hello, $_POST['name']!";
    3. ?>
    и есть js код
    Код (Text):
    1.  $.ajax({
    2.         url: "tools/user.php",
    3.         type: "POST",
    4.         dataType: 'html',
    5.         data: ({
    6.           name: "<?php echo $_SESSION['user'] -> token?>"
    7.         }),
    8.         },
    9.         success: function(deta) {
    10.           $(".pUserList").html(data);
    11.         }
    12.       });
    пж разберитесь эти коды просто пример в чем у меня проблема
    --- Добавлено ---
    как вы видите мне нужно вернуть весь выведенный html без return
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.835
    Симпатии:
    651
    Зато это не просто. Уверены, что в сессии находится норм. инициализированный объект? Между запросами просто так объекты в сессии не восстанавливаются. И сессия и так хранится на сервере. Зачем что-то передавать на сервер через фронт?

    Могло устареть и даже быть выпилено. Читайте документацию и см. вашу версию jQuery.
     
    Temurumaru нравится это.
  9. Temurumaru

    Temurumaru Новичок

    С нами с:
    4 янв 2022
    Сообщения:
    8
    Симпатии:
    0
    спасибо я обновил jQuery СПАСИБО!
     
  10. Temurumaru

    Temurumaru Новичок

    С нами с:
    4 янв 2022
    Сообщения:
    8
    Симпатии:
    0
    я походу проспал и както скачал jquery 2 ахахахаха
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.788
    Симпатии:
    1.328
    Адрес:
    Лень
    зачем отправлять сессионое значение через клиента, когда система изначально знает о них ?
    --- Добавлено ---
    есть шаблон template и есть слой content.
    При обычном запросе, механизм приложения накладывает на требуемый шаблон, сверху слой контента.
    При Ajax, идентифицируешь запрос
    PHP:
    1.     protected function isAjax(): bool
    2.     {
    3.         return $this -> app -> request -> isXmlHttpRequest();
    4.     }
    и далее механизм подгружает и выводит лишь слой контента, без шаблона общего.
    --- Добавлено ---
    PHP:
    1. <?php
    2.  
    3. declare ( strict_types = 1 );
    4.  
    5. namespace Nouvu\Resources\Controllers;
    6.  
    7. use Nouvu\Web\Http\Controllers\AbstractController;
    8. use Nouvu\Web\View\Repository\CommitRepository;
    9. use Nouvu\Resources\System\RestApi;
    10. use Nouvu\Web\Component\Database\DatabaseRequestInterface AS Nouvu;
    11.  
    12. final class MainController extends AbstractController
    13. {
    14.     public function err404( string | int $_route ): CommitRepository
    15.     {
    16.         $this -> title( [ 'Страница не найдена' ], true );
    17.        
    18.         if ( $this -> isAjax() )
    19.         {
    20.             return $this -> customJson( RestApi :: notFound()
    21.                 -> header( action: 'location', path: $this -> getPathByName( $_route ) )
    22.                 -> data( message: [ 'Страница не найдена' ] ) );
    23.         }
    24.        
    25.         return $this -> render( 'error.404', 'error-template' );
    26.     }
    27. }
     
    #11 MouseZver, 6 янв 2022
    Последнее редактирование: 6 янв 2022