Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2018, 15:51   #1
Metrologik
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 12
По умолчанию Как загрузить результат php скрипта без перезагрузки страницы?

Добрый день! Есть скрипт на php:
Код скрипта на php

Код:
<?php
header('Content-Type: text/html; charset=utf-8');
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
$arr_cms=array(
'Вопросы рубрики наука и техника' => 'Вопросы рубрики наука и техника',
'Вопросы рубрики компьютеры и интернет' => 'Вопросы рубрики компьютеры и интернет'
);
// таймаут (сколько ждать ответа сайта)
$tm_out=10; // сек.
 
function pars_url($str){
    $str=str_ireplace('https://','',$str);
    $str=str_ireplace('http://','',$str);
    $arr=array();
    $arr=explode("\n",$str);
    $arr=array_unique($arr);
    return $arr;
    }
function simple_curl($url){
    global $tm_out;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($curl, CURLOPT_AUTOREFERER,true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION,true);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $tm_out);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_URL, $url);
    $x = curl_exec($curl);
    return $x;
}  
function rrr($str) {
    global $arr_cms;
    $arr=array(0=>'Неизвестно',1=>'');
    foreach ($arr_cms as $a=>$b){
    $pos = stripos($str, $b);
    if ($pos===false)
    {}else {
        $arr[1]=$b;
        $arr[0]=$a;
        return $arr;
        }
        }
    return $arr;
    }
$f=array();
if (isset($_POST['url']) && ($_POST['url'] != '' )){
    $arr=pars_url($_POST['url']);
    echo '<center>';
    foreach ($arr as $a=>$b){
    $content = simple_curl('http://'.trim($b));
    $f=rrr($content);
    echo  'Цмс: <b>' . $f[0].'</b>';
    echo ' ('.$f[1].') ';
    echo  ' Сайт: <b>'. $b.'</b><br>'."\n";
    }
echo '</center>';  
} else {
echo $frm='
<html>
   <body>
       <h1>Введите урл</h1>
       <form action="index.php" method="post">
           <textarea rows="10" cols="45" name="url"></textarea><br>
           <input type="submit" value="Go">
       </form>
     
</body>
</html>';
}
Суть в том, что вводим в текстовое поле ссылки одного ресурса, а в результате скрипт обрабатывает и выдает есть ли по этим ссылкам категории или нет.
Вот для пример ссылки.
http://www.bolshoyvopros.ru/questions/actual/cat10.html
http://www.bolshoyvopros.ru/questions/actual/cat12.html

Как сделать так, чтобы загрузка происходила через ajax? То есть сначала должна браться первая ссылка и она обрабатываться. Процесс загрузки в виде лоадера. Потом таким же образом вторая ссылка.
На данный момент происходит перезагрузка страницы и выдает готовый результат сразу по обоим ссылкам.
Metrologik вне форума Ответить с цитированием
Старый 30.05.2018, 09:00   #2
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

1. Берете самый простой пример отправки запроса аяксом в рунете полно. По всей видимости искать мы не умеем потому вот:

Код:
form id="foo">
    <label for="bar">A bar</label>
    <input id="bar" name="bar" type="text" value="" />
    <input type="submit" value="Send" />
</form>

<!-- The result of the search will be rendered inside this div -->
<div id="result"></div>

 /* Get from elements values */
 var values = $(this).serialize();

 $.ajax({
        url: "test.php",
        type: "post",
        data: values ,
        success: function (response) {
           // you will get response from your php page (what you echo or print)                 

        },
        error: function(jqXHR, textStatus, errorThrown) {
           console.log(textStatus, errorThrown);
        }


    });

Далее в нашем примере скрипт test.php обрабатывает ваши ссылки и возвращает ответ в любом виде хоть в json который вы потому успешно парсите и выводе в любом удобном виде.

Что касается
Цитата:
Процесс загрузки в виде лоадера.
то тут все просто.

Рисуете div с кратинкой прелоадера. делайте див hidden. Как только вы нажали кнопку отправить (по событию кнопки) делайте этот див show - вы увидите как начинает крутиться прелоадер. в методе success снова делаете див hidden.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 30.05.2018, 16:16   #3
Ottava
Форумчанин
 
Регистрация: 05.09.2017
Сообщений: 157
По умолчанию

Metrologik, Иногда iframe бывают удобны, там не надо мутить с аяксом
Безопасность с Content Security Policy
Ottava вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript(обновление скрипта без перезагрузки страницы) Bagaganak JavaScript, Ajax 9 04.08.2017 01:17
Загрузка разных php скриптов без перезагрузки страницы SergeyZhuk WordPress и другие CMS 2 26.07.2017 23:07
Загрузка разных кусков php скрипта без перезагрузки страницы SergeyZhuk PHP 7 26.07.2017 18:11
Как сделать вкладки без перезагрузки страницы? roxy7 JavaScript, Ajax 2 09.10.2012 20:25
php, perl прием данных, чтобы сообщения доходили без перезагрузки страницы Delphinchik Perl 1 16.02.2011 21:07