Autor Zpráva
123
Profil *
Ahoj. Potřeboval bych poradit s javascriptem. Vůbec nevim jak se zeptat googla na to co potřebuju. Mám <input type="text" ...> a potřebuju ho refrešovat každých 5 sekund, ale chci aby se před každym refrešem někam uložil (post, session,get) jeho aktuální obsah. Moc bych ocenil Vaší pomoc. Děkuji.
Keeehi
Profil
Velmi hrubě takto:f
<form name="formular"><input type="text" name="policko" size="20" value=""></form>

<SCRIPT language="JavaScript">
<!--
  pic= new Image(1,1); 
  setInterval(function() { pic.src="http://example.com/script.php?hodnota="+document.formular.policko.value+"&at="+Math.random(); }, 5000);
//-->
</SCRIPT>

v script.php je pak ta hodnota z políčka dostupná v $_GET["hodnota"]
123
Profil *
Děkuji, ale vůbec tomu nerozumim. Proč je tam Math.random() ?? a proč je tam new Image(1,1) ?? Rozchodit se mi to nepodařilo.
Joker
Profil
123:
Vytvoří jakoby „obrázek“, ale jako src mu nastaví adresu skriptu i s vyplněnou GET hodnotou.
Když se pak JS pokusí „obrázek“ stáhnout, zavolá se skript. To se dělá v 5-sekundových intervalech, neboli každých 5 sekund se zavolá daný skript.
To random tam má kvůli tomu, aby adresa „obrázku“ (což ale ve skutečnosti jsou data která vrátí ten skript) byla pokaždé jiná. Kdyby byla stejná, prohlížeč by mohl použít cache a skript nezavolat.
123
Profil *
Nicméně... i tak jak na to koukám jsem asi ten problém špatně popsal. Dělám malý chat stylem db refreš ... funguje to jenom že ten refreš mi pochopitelnbě smaže všechno co má uživatel v tom inputu. Tak tohle potřebuju vyřešit.
Joker
Profil
123:
By šlo buď chat obnovovat přes AJAX třeba, nebo si hodnotu v inputu ukládat třeba do cookie (případně localstorage, ale to neumějí všechny prohlížeče).
123
Profil *
Mám to takhle a potřebuju aby se mi při tom refreši nesmazalo to co tam je zrovna napsané.

<?php
if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){
    echo "<h1>Mini-chat můžeš využívat jen jako přihlášený uživatel</h1>";
    exit;
}else{  
      echo "<h1>Mini-chat</h1>";
      echo '<meta http-equiv="refresh" content="5" >';         
      require 'db.php';
      $CHAT_DATA=mysql_query("select * from chat order by id desc limit 15;");
      $Pocet=0;            
                  while($CHAT_EXIT = mysql_fetch_array($CHAT_DATA)){
                  echo $CHAT_EXIT['cas'];
                  echo " | ";
                  echo $CHAT_EXIT['Chat_nick'];
                  echo ": ";                    
                  echo $CHAT_EXIT['text'];
                  echo '<br><hr>';
            $Pocet++;
            }
      echo '</meta>';
}
echo '<form action="minichat_db.php" method="post">';
$ChatNick = $_SESSION['login'];
echo '<hr>';
echo $ChatNick;
echo '</meta>';
echo '<input type="text" maxlength="500" name="ChatMesage" size="100" />';
echo '<input type="submit" name="send2" value=">> Odeslat <<"/>';
?>
_es
Profil
123:
aby se mi při tom refreši nesmazalo to co tam je zrovna napsané.
Tak to napísané odošli z PHP.
123
Profil *
_es:
A jak?
_es
Profil
123:
Zistíš, čo sa odoslalo a vypíšeš to do atribútu value.
123
Profil *
Aaano. To mám v plánu. Ale JAK?????????
pcmanik
Profil
123:
Neni mi zname ze by sa v ceskom jazyku pouzival viac ako jeden otaznik za opytovacou vetou...

Co ti je nejasne na tom ci napisal _es? Uz sa to inak napisat neda. Zoberes to co sa ti odosle a vlozis to pomocou value do inputu.
123
Profil *
Já nevím jak se to dělá. Jak tim java scriptem vezmu to value před tím refrešem.
Keeehi
Profil
123:
Ve tvém případě bude nejjednodušší, když se konverzace bude zobrazovat v iframe. Ten se může obnovovat nezávisle na zbytku stránky. Tím pádem se nebude mazat text v inputu, který je mimo ten iframe.
123
Profil *
V mám případě jsem to už vyřešil ajaxem. Nechci rámy. Už jsem to pomocí nich zkoušel řešit, ale jako ideální mi to fakt nepřišlo.
123
Profil *
Ale v tuhle chvíli mám tedy doplňující dotaz ohledně AJAXU... on jako potřebuje ke svému chodu knihovnu "jquery.js" a mě by zajímalo jak to s ní vlastně je... ona se odesílá spolu s tím co klient obdrží od serveru nebo ne?? Když jí budu mít uloženou na serveru tak se může stát že to nekomu nebude fungovat?? Je lepší jí mít na servu a nebo na ní ze serveru přesměrovat odkazem??
pcmanik
Profil
123:
Najlepsie bude ked vyuzijes google CDN, alebo priamo jQuery CDN, je totiz velka pravdepodobnost, ze uz to niekto pred tebou urobil a teda uzivatel uz bude mat jquery nacachovane u seba a nebude ho musiet znova stahovat.
_es
Profil
123:
Jak tim java scriptem vezmu to value před tím refrešem.
Kde je v [#8] a [#10] spomínaný JavaScript?
123
Profil *
čili do hlavičky jsem dal tohle <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> a funguje to... jenom abych si to tedy ujasnil... klientův prohlížeš tedy už teď pozná že si to jednou někam stáhnul a už to nebude stahovat odemně?


_es: Tebe vůbec nechápu jako. Neber si to osobně (nebo jo ber), ale podle mě kdyby všichni na foorech odpovídali jako ty, tak by nemělo dále smysl aby foora existovala. Podle mě tady tím že něco napíšeš prostě jenom dokazuješ účast nic víc.
Chamurappi
Profil
Reaguji na pcmanika:
je totiz velka pravdepodobnost, ze uz to niekto pred tebou urobil a teda uzivatel uz bude mat jquery nacachovane u seba
Nemyslím si, že ta pravděpodobnost je velká. Žádný velký český server googlí CDN nepoužívá.


Reaguji na 123:
Na AJAX rozhodně nepotřebuješ načítat obrovskou knihovnu, stačí ti jedna relativně malá funkce.

Ale JAK?????????
Za otázkou se píše jeden otazník. Vypisování v PHP se dělá příkazem echo, pokud vím.

tady tím že něco napíšeš prostě jenom dokazuješ účast nic víc
Lepší, než když tazatel dokazuje neúčast zdravého rozumu. Fórum se mimochodem píše s jedním „o“.
_es
Profil
123:
Tebe vůbec nechápu
V tých dvoch príspevkoch je spomenutý len jeden programovací jazyk - PHP a ani v príspevku, na ktorý som reagoval ([#7] 123), nie je nič z JS.
pcmanik
Profil
Chamurappi:
„Nemyslím si, že ta pravděpodobnost je velká. Žádný velký český server googlí CDN nepoužívá."
Cesky mozno nie, ale vela inych to pouziva, a nehovorime teraz len o velkych serveroch, stacia aj male stranky, a takymto jednoduchym krokom mozme docielit toho ze dnes, ked uz skoro kazdy pouziva jQuery, tak aspon v moznom 1% pripadov zmensime pocet ulozenych kopii na strane uzivatela. A urcite to ma tu vyhodu, ze nezvysuje traffic na svojom servery.
123
Profil *
_es: šmankote ajax je třeba v js... tohle se péhápkem řešit nedá. Nebo jako leda těma rámama a jinak to nejde. Nebo možná jde, ale asi nějak strašně neprakticky. Nevim. Takže se tady bavíme o JS. JS neumim, takže tam nemůže být nikde spomenutý. Nic vlastně neumim... dělám to celý měsíc. Před měsícem jsem nevěděl co je apač, css, html, php, javascript, sql... nic. Chápeš to? Proto jsem chtěl poradit, ale od tebe jsem se ničeho nedočkal... a jak jsem si povšimnul u tvých příspěvků, tak se věčinou nikdo ničeho nedočká. To je asi vše. Vám ostatním děkuji.


Chamurappi: Na AJAX rozhodně nepotřebuješ načítat obrovskou knihovnu, stačí ti jedna relativně malá funkce. tak jako kdybys mi chtěl s tou malou knihovnou nějak pomoci bylo by to fajn.. ale takhle už mi to funguje, ale asi to neni moc elegantní. Asi vůbec.

Lepší, než když tazatel dokazuje neúčast zdravého rozumu. Fórum se mimochodem píše s jedním „o“. Tak jo :D ... Budu si to pamatovat. Foorum. Jedno "o". Děkuji.

???? - a tohle je stabilizace psychiky. Nešlo to jinak.
_es
Profil
123:
_es: šmankote ajax je třeba v js... tohle se péhápkem řešit nedá.
V PHP sa nedá zistiť, čo odoslal prehliadač z formulára?
V PHP sa nedá vypísať do výstupu značka <input> s nejakou konkrétnou hodnotou atribútu value?
123
Profil *
_es:
V PHP sa nedá zistiť, čo odoslal prehliadač z formulára? - nevim
V PHP sa nedá vypísať do výstupu značka <input> s nejakou konkrétnou hodnotou atribútu value? - nevim. Nevim jak. Zkoušel jsem to. Nepodařilo se mi to. Už je to fakt jedno, protože mám ajax.
_es
Profil
123:
nevim. Nevim jak.
Nedokážeš v PHP zistiť, čo bolo odoslané z formulára metódou post prvkom <input> s name="ChatMesage" a zistenú hodnotu vypísať do atribútu value toho istého istého prvku? Teda v [#7] upraviť riadok 27?

Už je to fakt jedno, protože mám ajax.
To je asi lepšie riešenie, len som sa snažil naviesť na riešenie s najmenšou úpravou a PHP nepoužívam, preto som nedal hotový kód.

ak jako kdybys mi chtěl s tou malou knihovnou nějak pomoci bylo by to fajn.
Stačí len jedna funkcia, napríklad táto, netreba knižnicu funkcií.
123
Profil *
_es: To je asi lepšie riešenie, len som sa snažil naviesť na riešenie s najmenšou úpravou a PHP nepoužívam, preto som nedal hotový kód. - a preto jsi mě jenom zdržel. Nic víc. Navádění se minulo účinkem. Mimo to jsi mi psal to co jsem věděl ještě před tím než jsi mi to psal. Tak to napísané odošli z PHP. - To je fakt informace ty vogo.... A tohle - Zistíš, čo sa odoslalo a vypíšeš to do atribútu value. - tohle taky. Nepotřeboval jsem od tebe poradit s nějakou procedurální konstrukcí nebo co, ale se syntaxí. Nicméně.. tohle je moje chyba už od začátku jsem se špatně vyjadřoval... ovšem stejně si myslím že tvé holé věty nemají naději na to aby mě kamkoliv naváděly. Tak jak si mi to navrhoval jsem to řešit nechtěl, protože mi došlo to co tobě asi taky.... Není moc praktické refrešovat uplně celou stránku a pak chytat value nějakym postem. Nicméně jak jsem psal... řešil jsem to a nevydařilo se mi to. Netuším jak udělat aby se to postovalo samo.


_es: Na tu knihovnu se teď kouknu. uvidim jestli se mi to povede rozchodit. Díky.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: