Autor Zpráva
Spilky
Profil *
Mám následující úsek kódu v jQuery a potřebuji, aby se hodnota <select name="sirka" /> okamžitě po změně uložila do $_POST['sirka'] a znovu načetla stránka, kde již budu s hodnotou v $_POST pomocí PHP pracovat. Avšak když dám $echo $_POST['sirka'], tak se nic nevypíše. Kde by mohla býti chyba?

$("select[name='sirka']").change(function(){
        $('form.filtry').css({ opacity: 0.3 });
        $('#loader').show();
        var sirka = $("[name='sirka']").val();
        $.post("/prehledzbozibazar.php", {img: sirka});
        location.reload();
        $('form.filtry').css({ opacity: 1 });  
    });
Joker
Profil
Spilky:
Ten uvedený kód žádné $_POST["sirka"] neposílá, zato posílá $_POST["img"].
peta
Profil
print_r($_POST);
---
var sirka = $("[name='sirka']").val();
$.post("/prehledzbozibazar.php", {img: sirka}); // vzdyt tam mas img
...
$echo $_POST['sirka']
Chamurappi
Profil
Reaguji na Spilkyho:
Teoreticky se nemusí stihnout vyslat požadavek (nebo přijmout ze strany serveru), prohlížeč může stránku prakticky okamžitě po zavolání location.reload() zrušit.
Ale spíš je problém v jiném názvu parametru a také v tom, že v té nově načtené stránce nemůžeš pracovat s $_POSTem, který dostala jiná stránka AJAXem.

Proč vlastně vymýšlíš nějaké šílenosti s AJAXem a následným znovunačtením? Proč neodešleš formulář normálně? Nestačí obyčejný onchange="this.form.submit()"?
Spilky
Profil *
Jo to byla jen chybka při kopírování ;) je tam správně sirka: sirka

Z této stránky to spouštím
http://admin.xxaaca.cz/#prehledzbozibazar/Bazar/false

ta je složena samozřejmě i ze souboru prehledzbozibazar.php

je toto správně?


[#4] Chamurappi
this.form.submit mě vůbec nenapadlo, s tímhle začínám, takže jsem o tom ani nevěděl.

Avšak, i když jsem ho použil, tak mám stále problém:

Takto to nefunguje:
<form class="filtry" action="/#prehledzbozibazar/Bazar/true" method="post">

Takto ano:
<form class="filtry" action="/prehledzbozibazar.php" method="post">

avšak já potřebuji, aby to fungovalo pro ten první případ, protože prehledzbozibazar.php je jen includlé.
_es
Profil
Spilky:
avšak já potřebuji, aby to fungovalo pro ten první případ
Pre ten prvý prípad to fungovať nemôže, lebo časť adresy za mriežkou prehliadač vôbec neodosiela.
Spilky
Profil *
prostě a jednoduše to potřebuju postnout na tu samou stránku

teď to mám takto, ale stále nic:
<form class="filtry" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
_es
Profil
Spilky:
A celý formulár vyzerá ako?

prostě a jednoduše to potřebuju postnout na tu samou stránku
Na to nemusíš mať atribút action ani vyplnený: Formuláře » form.
Spilky
Profil *
<form class="filtry" method="post">
    <table class="parametry">
        <tbody><tr>
                                        <th>Typ pneu:</th>
                                        <td><div class="myselect"><?php /*echo $filtrvyrobce;*/ ?></div></td>
                                </tr><tr>
                                        <th>Šířka:</th>
                                        <td><div class="myselect"><select id="sirka" name="sirka" onchange="this.form.submit()">
                                                <option value="%">- vyberte šířku pneu -</option><option value="145">145</option><option value="155">155</option><option value="165">165</option><option value="175">175</option><option value="185">185</option><option value="195">195</option><option value="205">205</option><option value="215">215</option><option value="225">225</option><option value="235">235</option><option value="255">255</option><option value="285">285</option><option value="5,00">5,00</option><option value="6,50">6,50</option><option value="7,50">7,50</option>
                                        </select></div></td>
                                </tr>
        </tbody></table>
    </form>

ale když na v tom souboru prehledzbozibazar.php dám echo $_POST['sirka'], tak nic nevypíše, není ani nastavený (stránka: bla.cz/#prehledzbozibazar/Bazar/true)
_es
Profil
Spilky:
stránka: bla.cz/#prehledzbozibazar/Bazar/true
Znova si prečítaj [#6]. Z hľadiska odoslania formulára je to stránka bla.cz.
Spilky
Profil *
Chápu a nějaká rada jak to udělat bez změny url? Je to již naprogramovaný a rozsáhlý systém, který jsem bohužel nedělal já, ale musím tam dodělat jen tyto filtry a podobné věci.
_es
Profil
Spilky:
Nákupný systém by mal byť funkčný aj bez JS, ak nie je, tak je zle navrhnutý.

jak to udělat bez změny url?
Pomocou AJAXu. Načítaš dáta a spracuješ ich do aktuálnej stránky - bez príkazu location.reload() či iného zbytočného refreshu stránky.

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: