Portál AbcLinuxu, 12. května 2024 08:56


Dotaz: PHP POST cez javascript

22.9.2009 18:26 Tomb
PHP POST cez javascript
Přečteno: 846×
Odpovědět | Admin

Mam problem ktory sa snazim vyriesit snad uz treti den a nemozem prist na to preco to stale nejde.

Mam php skript na directory listing s urcity zalohami. Podstatne je ze potrebujem spravit to, ze ked sa listuje medzi zalohami a klikne sa na hyperlink ktory mam vlozeny pri kazdej zobrazovanej zalohe tak sa udaj s nazvom tohoto suboru POST-ne a tym spusti urcity skript ktory obnovy vybranu zalohu. Toto je ta podstatna cast kodu:

        <script language=javascript type=text/javascript>
        function submitPostLink(subor)
        {
              if(confirm("Skutocne chcete obnovit zalohu "+ subor +"?"))
              {
                    document.postlink['zaloha'].value = subor;
                    document.postlink.submit();
              }
        }
        </script>
        <form action="index.php" name=postlink method="post">
                <input type="hidden" name="zaloha" value="">
        <a href=# onclick="submitPostLink('<?php echo $files[$i] ?>');">obnovit</a>
 

Kedze nechcem aby sa nazov vybraneho suboru ($files[$i] je samozrejme premenna s aktualne zobrazovanym suborom) GET-ol ale potrebujem ho POST-nut tak pouzivam javascript aby sa submitol formular s metodou POST.

Problem je v tom ze ked otvorim priecinok v ktorom je iba jedna jedina zaloha, cize iba jeden jediny file a kliknem na hyperlink "obnovit" tak to funguje uplne dokonale.

Ked je ale v priecinku viacej zaloh a kliknem na ktorukolvek z nich na hyperlink "obnovit" tak sa mi spravne vyhodi confirm okno " if(confirm("Skutocne chcete obnovit zalohu "+ subor +"?"))" aj so spravnym nazvom premennej no formular sa mi uz nesubmitne.

Ako by sa tato slamastika dala vyriesit? Skusal som mnoho sposobov ale bud mi to neislo vobec alebo mi to ide iba s tym jednym suborom v priecinku. Prosim poradte mi. Dakujem

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.9.2009 20:34 Ash | skóre: 53
Rozbalit Rozbalit vše Re: PHP POST cez javascript
Odpovědět | | Sbalit | Link | Blokovat | Admin
A nějaká chyba JavaScriptu se neobjeví? (Ve FF Tools->Error Console)? Jediný rozdíl mezi vygenerovanými zdrojáky je opravdu v počtu řádků
<a href=# onclick="submitPostLink('<?php echo $files[$i] ?>');">obnovit</a>
?
22.9.2009 20:51 Tomb
Rozbalit Rozbalit vše Re: PHP POST cez javascript

Nie, ziadna chyba. Jednoducho sa mi iba nesubmitne ten formular. Absolutne nerozumiem tomu preco :(

23.9.2009 00:16 Andy
Rozbalit Rozbalit vše Re: PHP POST cez javascript

Taky mi prijde divne ze se nesubmitne, na javascript doporucuji pouzivat jquery framework, opravdu pohodove se s tim pracuje :)

23.9.2009 06:54 pilifs | skóre: 12 | blog: jenom_tak_mimochodem | Příbor
Rozbalit Rozbalit vše Re: PHP POST cez javascript
Odpovědět | | Sbalit | Link | Blokovat | Admin

A co třeba zkusit krokování?

Dostane se vůbec kód v tomto případě až k příkazu document.postlink.submit(); ?

23.9.2009 09:05 Ash | skóre: 53
Rozbalit Rozbalit vše Re: PHP POST cez javascript
No když mu to vyhodí ten confirm tak to vypadá že asi jo, navíc s jedním linkem to funguje :( Asi znovu zopakuji a poprosím tazatele o kontrolu (vimdiff nebo jiný diff) jestli je opravdu rozdíl mezi funkčním a nefunkčním kódem jen v počtu řádků ..a href... onclick... atd.
23.9.2009 09:23 R
Rozbalit Rozbalit vše Re: PHP POST cez javascript
Odpovědět | | Sbalit | Link | Blokovat | Admin
Daj sem vysledne vygenerovane HTML, ktore nefunguje.
23.9.2009 10:20 Tomb
Rozbalit Rozbalit vše Re: PHP POST cez javascript
Přílohy:

index-zly.php je vygenerovane HTML ktore nefunguje pretoze su tam dve zalohy.

index-dobry.php je vysledne HTML ktore funguje.

23.9.2009 10:33 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: PHP POST cez javascript
Nevím, jestli je to tím, ale rozhodně je zbytečné (a pravděpodobně i chybné) definovat tu funkci 2× a stejně tak je (dost) divné mít dva stejně pojmenované formuláře. Já bych ten JS kód i formulář narval někam nahoru na stránku a dolu dával jenom odkazy.

Neříkám, že to pak bude fungovat, ale aspoň se tím ten kód trochu pročistí.
I am always ready to learn although I do not always like to be taught. (W. Churchill)
23.9.2009 10:44 Ash | skóre: 53
Rozbalit Rozbalit vše Re: PHP POST cez javascript
No tak je to jasné, máte tam dva formuláře se stejným jménem, to vám nemůže fungovat :) Stačí vám jeden formulář a mnoho ...a href... onclick...
23.9.2009 10:54 Tomb
Rozbalit Rozbalit vše Re: PHP POST cez javascript

Aha jasne :), musel som byt vcera vecer uz naozaj hodne unaveny ked som si neuvedomil ze ten formular a tak isto aj tu javascript funkciu mam definovanu v cykle for :) preto to fungovalo len pre jednu zalohu kedze to tam bolo definovane len raz. Dakujem Vam vsetkym za svoj cas. Naozaj ste skvely. Diky

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.