Začátečnický problém s AJAXem – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Začátečnický problém s AJAXem – JavaScript, AJAX, jQuery – Fórum – Programujte.comZačátečnický problém s AJAXem – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

stibi0
Návštěvník
10. 2. 2008   #1
-
0
-

Zdravím, konečně jsem se rozhoupal k JavaScriptu a k AJAXu. Jako pomocníka jsem si vybral framework Mochikit.
Hned ze startu se mi vůbec nedaří a potřebuji poradit, co dělám spatně.
Mám tento JS kód:



function onDoit() {
var xmlHttpReq = getXMLHttpRequest();

xmlHttpReq.open( "POST", "/blog/test/" + getElement( "name").value, true);

var d = sendXMLHttpRequest(xmlHttpReq);
d.addCallback(function (data)
{
appendChildNodes($("message"), SPAN({}, data.responseText));
});

d.addErrback(function (data)
{
alert("Mas tam neco blbe !")
});
};


Funkci onDoit() volám přes onClick při kliknutí na tlačítko, záměr je takový, že text vyplněný do formulářového inputu se vloží do divu "message" přes onen appendChildNodes, ale nejspíš celé blbě nejenom odesílám, ale příchozí data se ani nezpracují, jsem z toho už jelen :)

Děkuji za jakoukoli radu.

Nahlásit jako SPAM
IP: 88.102.249.–
už mám taky blogísek :) http://www.stibi.org/blog
toka0
Stálý člen
11. 2. 2008   #2
-
0
-

Nejak nechapu, z popisu pod kodem, na co na to potrebujes AJAX

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
stibi0
Návštěvník
11. 2. 2008   #3
-
0
-

Možná se mi pletou pojmy, ale AJAX není onen asynchronní přenos dat, při kterém není pro změnu stránky nutný reload ? Přesně tohoto totiž chci využít.

Asi bude pro začátek lepší vyhnout se frameworkům a pochytit how-to, tak nějak od podlahy :)
Každopádně za každou radu budu vděčný.

Nahlásit jako SPAM
IP: 88.102.249.–
už mám taky blogísek :) http://www.stibi.org/blog
insider0
Věrný člen
11. 2. 2008   #4
-
0
-

zdravim,

podle toho, cos napsal ze ocekavas, tak onDoit vypada dost divne. Neznam ten framework, ale

xmlHttpReq.open( "POST", "/blog/test/" + getElement( "name").value, true);

vola soubor, ktery se zada do inputu se jmene name, tedy pokud do inputu zadas "nejaky text", tak se potom vola /blog/test/nejaky text coz asi neni soubor. Takze potrebujes zadat treba vrat.php, jehoz obsahem bude treba
<?php

foreach($_POST as $p)
echo $p."<br>";
?>

cimz se ti vrati obsah postu, ktery se pak vypise do toho spanu, i kdyz nevim, co ty funkce frameworku delaji

Nahlásit jako SPAM
IP: 78.102.32.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
stibi0
Návštěvník
12. 2. 2008   #5
-
0
-

Zdravím opavu :)
Já prostě nějak potřebuju získat JavaScritem onu proměnnou odeslanou formulářem, už jsem si asi trochu uvědomil, jak to všechno funguje, takže teď mizím do práce a večer se tu snad vrátím s řešením. ( Jinak aplikace je v Pythonu, ale to je detail)

Nahlásit jako SPAM
IP: 88.102.249.–
už mám taky blogísek :) http://www.stibi.org/blog
stibi0
Návštěvník
13. 2. 2008   #6
-
0
-

Takže, mnoho mnoho jsem studoval :) Musím opravit několik svých chyb.
Toka správně psal, že na záměru který tady popisuju není nic AJAXovitého, pravda. Já jsem totiž do svých myšlenkových pochodů míchal další záměr, což je cucání dat z DB a jejich AJAXovité zobrazení, stejným způsobem jaký jsme tady popisoval.

Takže, Mochikit jsem opustil, zabrousil k low-endu a pak narazil na jQuery, ze kterého mám opravdu radost.
Takže, řešení mého problému:

HTML stránka ( jenom kousek, ale zrovna ten důležitý :)) :



.....
<form name="test" id="test">
<label>Zadej něco:</label>
<input id="name" name="name" value="stibi"/>
<a href="#" id="pridej">Přidej !</a>
</form>
<div id="message" />
.....

Jak pojmenujete formulář, je jedno v tomto případě, důležité je, jaké id má odkaz, s tímto ID se pak totiž pracuje v JavaScriptu, důležité je znám také id input políčka. Nakonec div message, do něj se přidá hodnota input políčka.

JavaScript:


$(document).ready(function() {
// najdeme ve strance element s ID pridej a pres onclick nastavime, ze se ma spustit funkce pridej()
document.getElementById('pridej').onclick = pridej;
});

// a tady mame nasi pridavaci funkci
function pridej() {
// najde si element message a prida do nej odstavec, ve kterem je hodnota elementu name, text je ziskan pomoci value
$(document.getElementById('message')).append("<p>" + document.getElementById('name').value + "</p>");

}


Toť vše, moooc šikovné :) Líbí se mi to.

Nahlásit jako SPAM
IP: 88.102.249.–
už mám taky blogísek :) http://www.stibi.org/blog
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Začátečnický problém — založil C3P1C3

Začátečnický problém — založil Nonameprogrammer

Můj začátečnický problém — založil Anonymní uživatel

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý