<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум PHP-MyAdmin.RU &mdash; Скрипт php через ajax.]]></title>
		<link>https://forum.php-myadmin.ru/viewtopic.php?id=2636</link>
		<atom:link href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=2636&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Скрипт php через ajax.».]]></description>
		<lastBuildDate>Wed, 01 Aug 2012 15:15:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=21005#p21005</link>
			<description><![CDATA[<p>У меня получилось, но скрипт получился довольно не эффективным. Тормозит работу примерно в 3-4 раза.<br />У меня появилась идея - записывать все выводы в базу данных, а на сайте с интервалом в 1 секунду считывать с нее данные...<br />Попробую сделать так...</p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Wed, 01 Aug 2012 15:15:58 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=21005#p21005</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=21004#p21004</link>
			<description><![CDATA[<p>Хорошо, спасибо за ответ, завтра попробую реализовать)</p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Tue, 31 Jul 2012 19:05:30 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=21004#p21004</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=21003#p21003</link>
			<description><![CDATA[<div class="quotebox"><cite>Hase сказал:</cite><blockquote><p>Ну у меня все равно выводится весь результат сразу, но обновляется каждые 5 секунд... Ничего не выходит(</p></blockquote></div><p>Смысл в том, что вы должны выбрать из БД ограниченное количество строк по (LIMIT 0, 10) например. Во вторую загрузку скрипта уже будет LIMIT 10, 10. Соответственно, для этого необходимо через Ajax передать позицию с которой будет продолжена выборка из БД.</p>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Tue, 31 Jul 2012 18:28:41 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=21003#p21003</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=21002#p21002</link>
			<description><![CDATA[<p>Ну у меня все равно выводится весь результат сразу, но обновляется каждые 5 секунд... Ничего не выходит(</p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Tue, 31 Jul 2012 17:33:46 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=21002#p21002</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20994#p20994</link>
			<description><![CDATA[<p>А-а-а, спасибо, сразу не понял, сейчас попробую реализовать!)</p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Tue, 31 Jul 2012 09:24:53 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20994#p20994</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20989#p20989</link>
			<description><![CDATA[<div class="quotebox"><cite>Hase сказал:</cite><blockquote><p>на стороне клиента нельзя заранее узнать, через сколько времени скрипт выдаст результат.</p></blockquote></div><p>Нельзя.</p><p>Посмотрите еще раз строки примера:<br />$(&#039;#time&#039;).html(data); // Выводит полученные через Ajax данные на форме сайта.<br />window.setTimeout(showTime, 5000); // Запускает функцию showTime() через 5 секунд после вывода данных.<br />Это означает, что скрипт test.php запускается не через каждые 5 секунд, а через каждые 5 секунд после получения данных. Для остановки рекурсии достаточно обернуть строку в условие:<br />if (...) window.setTimeout(showTime, 5000);<br />Условие может быть как на стороне клиента (переменная счетчик), так и передаваться через данные в Ajax (&lt;input type=&quot;hidden&quot; value=&quot;stop&quot; id=&quot;stop&quot; /&gt;).</p>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Tue, 31 Jul 2012 07:41:01 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20989#p20989</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20987#p20987</link>
			<description><![CDATA[<p>Спасибо, но это же с задержкой... У меня вот какая ситуация:</p><p>HTML:<br /></p><div class="codebox"><pre><code>&lt;head&gt;
                        $(&#039;document&#039;).ready(function() {
                $(&#039;#emails&#039;).ajaxForm( {
                    target: &#039;#window&#039;, 
                    success: function() { 
                        //without anything spec...
                    } 
                }); 
            });
&lt;/head&gt;
&lt;div id=&quot;window&quot;&gt;&lt;/div&gt;
                &lt;form id=&quot;emails&quot; method=&quot;POST&quot; action=&quot;php_scripts/admin_emails.php&quot;&gt;
                    &lt;table style=&quot;width:100%&quot;&gt;
                        &lt;tr&gt;
                            &lt;td style=&quot;width:50%&quot;&gt;
                                Первая часть рассылки
                            &lt;/td&gt;
                            &lt;td style=&quot;width:50%&quot;&gt;
                                    Вторая часть рассылки
                            &lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr&gt;
                                &lt;td style=&quot;width:50%&quot;&gt;
                                &lt;input type=&quot;radio&quot; name=&quot;check&quot; value=&quot;1&quot;&gt;
                            &lt;/td&gt;
                            &lt;td style=&quot;width:50%&quot;&gt;
                                &lt;input type=&quot;radio&quot; name=&quot;check&quot; value=&quot;2&quot;&gt;
                            &lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr&gt;
                            &lt;td colspan=&quot;2&quot;&gt;
                                &lt;input id=&quot;emails-submit&quot; type=&quot;image&quot; src=&quot;images/project/submit.png&quot;&gt;
                            &lt;/td&gt;
                        &lt;/tr&gt;
                    &lt;/table&gt;
                &lt;/form&gt;</code></pre></div><p>PHP:<br /></p><div class="codebox"><pre><code>&lt;?php
include &quot;functions.php&quot;;
echo &quot;&lt;br&gt;&lt;div style=&#039;max-width:390px; height:430px; overflow-y:scroll;background:#fff; margin:auto; border-top-left-radius:35px 34px; border-bottom-left-radius:35px 34px; -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); box-shadow: 0 0 10px rgba(0,0,0,0.5);&#039;&gt;&lt;table&gt;&quot;;
//////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////FIRST PART\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if(isset($_POST[&#039;check&#039;])) {
    if($_POST[&#039;check&#039;] == &#039;1&#039;) {
        $time = date(&quot;H:i:s&quot;);
        echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt;&lt;h3&gt;Рассылка первой части e-mail началась&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
        $id = 0;
        while($id&lt;=3000) {
            $col = 1;
            $email = &quot;&quot;;
            while($col&lt;=20) {
                $query = &quot;SELECT * FROM emails WHERE id=&#039;$id&#039;&quot;;
                $result = queryMysql($query);
                if (mysql_num_rows($result)) {
                    $row = mysql_fetch_row($result);
                    $res = stripslashes($row[1]);
                    if($col&lt;20) {
                        $email .= &quot;$res,&quot;;
                    }
                    else {
                        $email .= &quot;$res&quot;;
                    }
                }
                $col = $col+1;
                $id = $id+1;
            }
            $time = date(&quot;H:i:s&quot;);
            echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt;Рассылка стартовала&lt;/td&gt;&lt;/tr&gt;&quot;;
            if(5&lt;9) {
                $time = date(&quot;H:i:s&quot;);
                echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt;&lt;center style=&#039;color:green&#039;&gt;Рассылка с успешно завершена&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
            }
            else {
                $time = date(&quot;H:i:s&quot;);
                echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt;&lt;center style=&#039;color:red&#039;&gt;Ошибка! Неудалось отправить рассылку!&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
            }
        }
        $time = date(&quot;H:i:s&quot;);
        echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt;&lt;h3&gt;Рассылка первой части e-mail завершена&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
    }
    else if($_POST[&#039;check&#039;] == &#039;2&#039;) {
    //////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    /////////////////////SECOND PART\\\\\\\\\\\\\\\\\\\\\\
    //////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
        $time = date(&quot;H:i:s&quot;);
        echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt;&lt;h3&gt;Рассылка второй части e-mail началась&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
        $id = 3001;
        while($id&lt;=6047) {
            $col = 1;
            $email = &quot;&quot;;
            while($col&lt;=20) {
                $query = &quot;SELECT * FROM emails WHERE id=&#039;$id&#039;&quot;;
                $result = queryMysql($query);
                if (mysql_num_rows($result)) {
                    $row = mysql_fetch_row($result);
                    $res = stripslashes($row[1]);
                    if($col&lt;20) {
                        $email .= &quot;$res,&quot;;
                    }
                    else {
                        $email .= &quot;$res&quot;;
                    }
                }
                $col = $col+1;
                $id = $id+1;
            }
            $time = date(&quot;H:i:s&quot;);
            echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt; Рассылка стартовала&lt;/td&gt;&lt;/tr&gt;&quot;;
            if(5&lt;9) {
                $time = date(&quot;H:i:s&quot;);
                echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt; &lt;center style=&#039;color:green&#039;&gt;Рассылка успешно завершена&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
            }
            else {
                $time = date(&quot;H:i:s&quot;);
                echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt; &lt;center style=&#039;color:red&#039;&gt;Ошибка! Неудалось отправить рассылку&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
            }
            $id = $id+1;
        }
        $time = date(&quot;H:i:s&quot;);
        echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt; &lt;h3&gt;Рассылка второй части e-mail завершена&lt;/h3&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
    } 
}
else {
    $time = date(&quot;H:i:s&quot;);
    echo &quot;&lt;tr&gt;&lt;td&gt;$time&lt;/td&gt;&lt;td&gt; &lt;center style=&#039;color:red&#039;&gt;Ошибка! Не выбран тип рассылки!&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;
}
echo &quot;&lt;script&gt; document.getElementById(&#039;ajaxloader-admin&#039;).style.display=&#039;none&#039;;document.getElementById(&#039;emails-submit&#039;).style.display=&#039;block&#039; &lt;/script&gt;&quot;;
echo &quot;&lt;/table&gt;&lt;/div&gt;&quot;;
?&gt;</code></pre></div><p>На условие 5&lt;9 не обращайте внимание. На его месте потом будет условие отправилось письмо или нет.</p><p>На этом примере видно, что на стороне клиента нельзя заранее узнать, через сколько времени скрипт выдаст результат. Скрипт надо как-то остановить и вывести результата, а потом запустить снова. Я видел в интернете функцию flush(), но не знаю, относится ли на к этому случаю или нет... И как с ней работать тоже не разобрался, так как в мануале примеров не оказалось <img src="https://forum.php-myadmin.ru/img/smilies/sad.png" width="15" height="15" alt="sad" /></p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Mon, 30 Jul 2012 20:16:55 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20987#p20987</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20985#p20985</link>
			<description><![CDATA[<p>Должны получиться часы с 5 секундной задержкой на стороне клиента.</p><p>HTML<br /></p><div class="codebox"><pre><code>&lt;script&gt;

function showTime() {
  $.ajax({
    url: &#039;test.php&#039;,
    type: &quot;POST&quot;,
    success: function(data) {
      $(&#039;#time&#039;).html(data);
      window.setTimeout(showTime, 5000);
    }
  });
}

showTime();

&lt;/script&gt;

&lt;div id=&quot;time&quot;&gt;&lt;/div&gt;</code></pre></div><p>test.php<br /></p><div class="codebox"><pre><code>&lt;?php

echo date(&#039;h:i:s&#039;);

?&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Mon, 30 Jul 2012 19:59:40 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20985#p20985</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20983#p20983</link>
			<description><![CDATA[<p>Не получается у меня(<br />Через XML не умею, а через json не получается. В скрипте делаю вызов json, а в основном коде страницы скрипт вывода этого результата. Ноя не знаю как отследить, передал ли php скрипт значение или нет. Когда вызывать функцию $.get(&#039;result&#039;,&quot;json&quot;)?</p><p>Если у Вас есть время, я бы посмотрел простейший пример такой связки, в интернете я не нашел то, что мне надо. </p><p>Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Mon, 30 Jul 2012 19:13:02 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20983#p20983</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20982#p20982</link>
			<description><![CDATA[<div class="quotebox"><cite>Hase сказал:</cite><blockquote><p>Для этого есть определенная функция в php?</p></blockquote></div><p>Нет, PHP просто формирует результат в виде Json или XML данных.</p><div class="quotebox"><cite>Hase сказал:</cite><blockquote><p>И как отправить данные в скрипт без какого-нибудь события?</p></blockquote></div><p>Первый раз событие можно осуществить по открытию страницы, например.</p>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Mon, 30 Jul 2012 17:39:13 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20982#p20982</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20981#p20981</link>
			<description><![CDATA[<div class="quotebox"><cite>Hanut сказал:</cite><blockquote><p>затем PHP скрипт должен отправить клиенту JavaScript данные и уровень выполнения операции, например количество выведенных строк</p></blockquote></div><p>Для этого есть определенная функция в php? Я просто ни разу не сталкивался с этим и поэтому не знаю как такое сделать. Все равно спасибо за ответ...</p><p>И как отправить данные в скрипт без какого-нибудь события?</p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Mon, 30 Jul 2012 17:34:01 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20981#p20981</guid>
		</item>
		<item>
			<title><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20977#p20977</link>
			<description><![CDATA[<p>JavaScript отправляет PHP скрипту запрос на выполнение через Ajax, затем PHP скрипт должен отправить клиенту JavaScript данные и уровень выполнения операции, например количество выведенных строк, и затем JavaScript опять отправляет запрос на PHP скрипт, чтобы тот начал выборку данных начиная с определенной строки. Таким образом можно сделать постепенный вывод на страницу данных по определенному количеству строк.</p>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Mon, 30 Jul 2012 16:13:03 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20977#p20977</guid>
		</item>
		<item>
			<title><![CDATA[Скрипт php через ajax.]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=20974#p20974</link>
			<description><![CDATA[<p>И снова здравствуйте! <img src="https://forum.php-myadmin.ru/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /></p><p>У меня вопрос. Вот есть довольно большой скрипт на php (большой не в смысле кода, а в смысле долгий по выполнению).<br />Он выполняется при отправки формы. Но форма ajax. И мне хочется узнать, можно ли чтобы скрипт выводил не сразу всю работу, а построчно. Например:</p><div class="codebox"><pre><code>echo &quot;Первая строчка&quot;;
//пауза
echo &quot;Вторая строчка&quot;;
//пауза
echo &quot;Третья строчка&quot;;
//пауза
echo &quot;Четвертая строчка&quot;;</code></pre></div><p>Надо чтобы в div-е, куда ссылается форма, отображалось так-же: первая строчка (пауза), вторая строчка (пауза) и т.д.</p><p>Надеюсь, Вы поможете) Заранее спасибо)</p>]]></description>
			<author><![CDATA[null@example.com (Hase)]]></author>
			<pubDate>Mon, 30 Jul 2012 15:13:45 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=20974#p20974</guid>
		</item>
	</channel>
</rss>
