<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум PHP-MyAdmin.RU &mdash; Скрипт php через ajax.]]></title>
	<link rel="self" href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=2636&amp;type=atom" />
	<updated>2012-08-01T15:15:58Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.php-myadmin.ru/viewtopic.php?id=2636</id>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=21005#p21005" />
			<content type="html"><![CDATA[<p>У меня получилось, но скрипт получился довольно не эффективным. Тормозит работу примерно в 3-4 раза.<br />У меня появилась идея - записывать все выводы в базу данных, а на сайте с интервалом в 1 секунду считывать с нее данные...<br />Попробую сделать так...</p>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-08-01T15:15:58Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=21005#p21005</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=21004#p21004" />
			<content type="html"><![CDATA[<p>Хорошо, спасибо за ответ, завтра попробую реализовать)</p>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-07-31T19:05:30Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=21004#p21004</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=21003#p21003" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Hase сказал:</cite><blockquote><p>Ну у меня все равно выводится весь результат сразу, но обновляется каждые 5 секунд... Ничего не выходит(</p></blockquote></div><p>Смысл в том, что вы должны выбрать из БД ограниченное количество строк по (LIMIT 0, 10) например. Во вторую загрузку скрипта уже будет LIMIT 10, 10. Соответственно, для этого необходимо через Ajax передать позицию с которой будет продолжена выборка из БД.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2012-07-31T18:28:41Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=21003#p21003</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=21002#p21002" />
			<content type="html"><![CDATA[<p>Ну у меня все равно выводится весь результат сразу, но обновляется каждые 5 секунд... Ничего не выходит(</p>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-07-31T17:33:46Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=21002#p21002</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20994#p20994" />
			<content type="html"><![CDATA[<p>А-а-а, спасибо, сразу не понял, сейчас попробую реализовать!)</p>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-07-31T09:24:53Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20994#p20994</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20989#p20989" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2012-07-31T07:41:01Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20989#p20989</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20987#p20987" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-07-30T20:16:55Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20987#p20987</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20985#p20985" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2012-07-30T19:59:40Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20985#p20985</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20983#p20983" />
			<content type="html"><![CDATA[<p>Не получается у меня(<br />Через XML не умею, а через json не получается. В скрипте делаю вызов json, а в основном коде страницы скрипт вывода этого результата. Ноя не знаю как отследить, передал ли php скрипт значение или нет. Когда вызывать функцию $.get(&#039;result&#039;,&quot;json&quot;)?</p><p>Если у Вас есть время, я бы посмотрел простейший пример такой связки, в интернете я не нашел то, что мне надо. </p><p>Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-07-30T19:13:02Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20983#p20983</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20982#p20982" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2012-07-30T17:39:13Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20982#p20982</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20981#p20981" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Hanut сказал:</cite><blockquote><p>затем PHP скрипт должен отправить клиенту JavaScript данные и уровень выполнения операции, например количество выведенных строк</p></blockquote></div><p>Для этого есть определенная функция в php? Я просто ни разу не сталкивался с этим и поэтому не знаю как такое сделать. Все равно спасибо за ответ...</p><p>И как отправить данные в скрипт без какого-нибудь события?</p>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-07-30T17:34:01Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20981#p20981</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20977#p20977" />
			<content type="html"><![CDATA[<p>JavaScript отправляет PHP скрипту запрос на выполнение через Ajax, затем PHP скрипт должен отправить клиенту JavaScript данные и уровень выполнения операции, например количество выведенных строк, и затем JavaScript опять отправляет запрос на PHP скрипт, чтобы тот начал выборку данных начиная с определенной строки. Таким образом можно сделать постепенный вывод на страницу данных по определенному количеству строк.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2012-07-30T16:13:03Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20977#p20977</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Скрипт php через ajax.]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=20974#p20974" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Hase]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=4004</uri>
			</author>
			<updated>2012-07-30T15:13:45Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=20974#p20974</id>
		</entry>
</feed>
