Състояние на цикъл

dakata__92

Super Moderator
Колеги имам един php код, въртящ доста време. Искам по някакъв начин да визуализирам напредъка му или един вид брояча. Проблема е, че желая да презаписва стойностите в някакво поле тоест примерно като секундомер да стане. Незнам как точно да ви го обясня но не искам това:
PHP:
for($i=0;$i<100;$i++){
	echo "<br>".$i;
}
Тоест не желая примерно да визуализира
1
2
3
4
5
...
а на едно място примерно в някакъв див да ги показва на едно място както на часовник секундите тоест брояча да се визуализира но предишната стойност да се презапише. С js ще стане но незнам как най-лесно и да го направя. Искам да стане примерно както секундомер цикъла да си върти и да презаписва в някакво поле брояча да се визуализира и да показва цикъла на коя интерация е в момента.

Дали php няма някоя подобна функция отбелязваща някаква подобна статистика?
 
С php само няма да стане, зашото трябва рефреш за да визуализираш всяка следваща интерация. Отговора е Ajax както и сам си се досетил :) .
 
Брат, с javascript ще стане(ajax по-точно), но ако държиш можеш да прбваш някои от тези методи. Не съм запознат с нито един, така че, не мога да те посъветвам относно кое ТОЧНО ще е добре и ще ти свърши работа.

Значи ето какво намерих:
http://stackoverflow.com/questions/6299433/html-dom-manipulation-in-php

http://stackoverflow.com/questions/4427239/manipulate-html-from-php

https://github.com/wasinger/htmlpagedom

http://www.experts-exchange.com/articles/10277/HTML-Manipulation-Made-Easy.html

Каза да са по подобие на JS метода за създаване, това и търсих, но както казах, никаква идея ще ти свършат ли работа :) :oops: :?:
 
Хмммм и аз се чудех за аджакс но ще забави нещата. Четох, четох ама се чудя какво ще е що ще е и аз. :o :)
 
Мисля, че с ajax няама да има забавяне, тъй като цялата му идея е всичко да става динамично и бързо. В смисъл, че не се налага да презареждаш страницата, а само малка част от нея. Ако решиш да пробваш с ajax ще се опитам да помогна :) :?:
 
Еми така е, ама от гледна точка на потребителя е по-добре да направиш някакъв прогрес бар за да знае че се чака за нещо, отколкото само да му цикли и да се чуди какво става. Това си е стандарт, така да се каже :) .
 
teroristd каза:
Еми така е, ама от гледна точка на потребителя е по-добре да направиш някакъв прогрес бар за да знае че се чака за нещо, отколкото само да му цикли и да се чуди какво става. Това си е стандарт, така да се каже :) .
Ммммм малко сложно ще стане това. Принципно като идея става но като реализация е много трудно за целта за която го използвам.
 
teroristd каза:
Ти казваш само че въртиш някакъв цикъл :D .
Ами аз го дадох това като пример. :D Прав си и ти де ама ако тръгна да обеснявам кое за какво и що е ще се хванеш за главата. :D :D :D
 
на всяка итерация, увеличваш с едно и рефрешваш страницата с javascript, като добавяш един гет параметър id, ако е сетната тая стойност, взема нея и продължава там докъдето е стигнало, спрямо зададени параметри старт и енд и текущото ид си изчисляваш процента до къде е стигнало. лесно и просто
 
embaka каза:
на всяка итерация, увеличваш с едно и рефрешваш страницата с javascript, като добавяш един гет параметър id, ако е сетната тая стойност, взема нея и продължава там докъдето е стигнало, спрямо зададени параметри старт и енд и текущото ид си изчисляваш процента до къде е стигнало. лесно и просто
Дай малйк пример. :)
 
Сокети?
http://blog.maartenballiauw.be/post/2011/11/29/Techniques-for-real-time-client-server-communication.aspx
http://www.html5rocks.com/en/tutorials/websockets/basics/
 
dakata__92 каза:
embaka каза:
на всяка итерация, увеличваш с едно и рефрешваш страницата с javascript, като добавяш един гет параметър id, ако е сетната тая стойност, взема нея и продължава там докъдето е стигнало, спрямо зададени параметри старт и енд и текущото ид си изчисляваш процента до къде е стигнало. лесно и просто
Дай малйк пример. :)

Какъв пример да ти дам, описал съм какво трябва да направиш, напъни си малко мозъка и го направи, няма да дам готов код, щото нямам време да се занимавам с глупости
 
embaka каза:
dakata__92 каза:
embaka каза:
на всяка итерация, увеличваш с едно и рефрешваш страницата с javascript, като добавяш един гет параметър id, ако е сетната тая стойност, взема нея и продължава там докъдето е стигнало, спрямо зададени параметри старт и енд и текущото ид си изчисляваш процента до къде е стигнало. лесно и просто
Дай малйк пример. :)

Какъв пример да ти дам, описал съм какво трябва да направиш, напъни си малко мозъка и го направи, няма да дам готов код, щото нямам време да се занимавам с глупости
Колега, ако днес ти е крив света не е нужно да се заяждаш. Примера ти е глупав не се ли сещаш и сам. От какъв зор ще рефрешвам страницата и ще сменям параметри на всяка интерация. Това преусложнява нещата. Питах за лесен начин да се получи. При цикъл с 15 000 интерации как си представяш да рефрешва страницата на всяка интерация и да подавам от интерацията числото за начало на цикъла като ИД тоест $i която се натрупва. Нали трябва да подавам и променливата за край на цикъла като втори параметър. Търся някакъв начин или врътка това да си се получава на всяка интерация, тоест да се сменя в някакво поле стойността за да се покаже на кое място е цикъла. Реално твоето решение е глупаво, то по-добре аjаx както предложиха да ползвам отколкото твоята "боза". Никой не те кара да се занимаваш с нашите глупости, затова питаме, за да се научим или открием някакво решение на казуса ни.

Темата е все още активна колеги. Чудих се дали да не променя стойността на дадено инпут поле от типа readonly но се сещам да генерирам на document.getElementById("input").value="50"; , но отново е непрактично и грозно в кода. Проблем е, че ако сложа sleep(1) в цикъла не се визуализира нищо докато не зареди което е и основен проблем при зареждането на системата...

Код:
		<input readonly type="text" id="input" value=""/>
		<?php	
			$input = '<script>document.getElementById("input").value=';
			for($i=1;$i<=10;$i++){
				echo $input.$i.";</script>";
			}
		?>
 
Крайната стойност не я ли знаеш колко е, ако тя ти е заложена в скрипта като променлива, тя винаги ще е тази, когато увеличаваш id променяш заявката като лимита ще ти е текущото ид от гета 1234, 1. 1-цата ти е лимит от една заявка, съответно имаш началото от където е стартирал скрипта, имаш края където трябва да спре имаш и текущото число от гет, спрямо което изчисляваш процентното отношение.

Ако мислиш, че ми е крив целия свят не е. Кое според теб от това което написах е толкова сложното? Да го осмислиш и разбереш или да искаш на всяко запитване пример? Вместо постоянно да правиш запитвания и искаш примери пусни едно задание какво искаш да се направи и който може ще ти помага
 
Представи си, че всичко това идва от пост заявка нали като рефрешвам или ще изкача в браузеръ искате ли да потвърдите поста или просто няма да е сетнато или ще изпраща всичко наново. Въпроса е ЗАЩО? Подава се началото и края на цикъла от пост заявката. Проблема съм го задал тук още в началото, а твоето решение при 1000 интерациии ще е калпаво а да не говорим ако ми се наложи както е зададено в системата да стигам и до 900 000 интерациии. Въпроса не е в рефреша да ще стане, но е непрактично да го правя, затова те помолих оотначало за код защото реално не бях много сигурен дали това си ми описал. Уви вече съм убеден, че е така. За жалост това не е решението на проблема... Чудех се какво ще е решението но явно това е задача без лесно и бързо решение. :)
 
dakata__92 каза:
Представи си, че всичко това идва от пост заявка нали като рефрешвам или ще изкача в браузеръ искате ли да потвърдите поста или просто няма да е сетнато или ще изпраща всичко наново. Въпроса е ЗАЩО? Подава се началото и края на цикъла от пост заявката. Проблема съм го задал тук още в началото, а твоето решение при 1000 интерациии ще е калпаво а да не говорим ако ми се наложи както е зададено в системата да стигам и до 900 000 интерациии. Въпроса не е в рефреша да ще стане, но е непрактично да го правя, затова те помолих оотначало за код защото реално не бях много сигурен дали това си ми описал. Уви вече съм убеден, че е така. За жалост това не е решението на проблема... Чудех се какво ще е решението но явно това е задача без лесно и бързо решение. :)


Примерно, никъде не видях, че искаш това да го използваш в POST, дори и да го ползваш в пост пак може да стане с headers. Въпрос на гледна точка и възможности
 

Back
Горе