Autor Zpráva
SLowK
Profil *
Ahoj, chtěl bych se zeptat mám eshop a do tabulky vybírám objednávky. A u toho mám tlačítko detail a potřebuji aby když na to klikne, tak aby pod tím vyjel detail objednávky jako např název zboží atd. Jenže mi to hází chybu že mám nedefinovanej index a02id . Nevím proč prostě mi to nebere $_POST v selectu. Když ten $_POST smažu tak je vše ok akorát mi to vybere všechny názvy a já potřebuji jen k té dané objednávce. Neporadil by někdo prosím ?

<?php

$sql=mysql_query("SELECT * FROM a02objednavka WHERE a01id= '".$_SESSION['a01id']."';");
   while($objednavka=mysql_fetch_array($sql)):?>
        <center><table>
            <input type="hidden" value="<?php echo $objednavka["a02id"]; ?>" name="a02id" />
            <td width="150"><?php echo $objednavka["a02datum"];?></td>
            <td width="150"><?php echo $objednavka["a02cisloObjednavky"];?></td>
<script>
function zobrazSkryj(a02id){
    el=document.getElementById(a02id).style; 
    el.display=(el.display == 'block')?'none':'block';
}
</script>
<style>
label {cursor: pointer; cursor: hand; text-decoration: underline}
.skryvany {display: none}
</style>

        <td width="80"><label onclick="zobrazSkryj('oddil1')">Detail</label></td>  
        <div id="oddil1" class="skryvany">
            <?php 
                $detail=mysql_query("Select 05nazev,a05cena
                                        from a02objednavka a02, a03polozka_objednavky a03, a05zbozi a05
                                        where a02.a02id=a03.a02objednavka_a02id and a03.a05zbozi_a05id=a05.a05id and a02id='".$_POST['a02id']."';
                                        ") or die (mysql_error());
                 while($polozka=mysql_fetch_array($detail)):
            
            ?>
            <label><?php echo $polozka["05nazev"] ;?></label>
            <?php endwhile; ?>
        </div>            
            

            
        </table>
        </center>
<?php endwhile; ?>
Tori
Profil
A na tuhle tabulku se dostanete odesláním nějakého formuláře? (= jestli vůbec existuje ta hodnota v $_POST, jestli jste nechtěl třeba použít AJAX)
SLowK
Profil *
Tori:
Pravda ten jsem tam neměl. Tak jsem ho tam dodělal, ale jak je možné že to píše stejně. Pokud tam dám submit jako odkaz na detail tak to možná funguje, jenže po kliknutí na detail detail rychle se otevre a hned zajede tak nemám čas zjistit zda to funguje v pořádku.
SLowK
Profil *
Neměl by čas se někdo na to podívat ? Lámu si s tím hlavu už sem to všechno snad 100 krát přepsal už mě jiné možnosti nenapadají. Prostě nedefinovaný index a02id. Aktuální kód. Na 33 řádku. Všem děkuji co se na to podívají.

<?php
 
$sql=mysql_query("SELECT * FROM a02objednavka WHERE a01id= '".$_SESSION['a01id']."';");
   while($objednavka=mysql_fetch_array($sql)):?>
        <center>
        <form method="POST" action="">
        <table>
            <input type="hidden" value="<?php echo $objednavka["a02id"]; ?>" name="a02id" />
            <td width="150"><?php echo $objednavka["a02datum"];?></td>
            <td width="150"><?php echo $objednavka["a02cisloObjednavky"];?></td>


<script>
function zobrazSkryj(a02id){
    el=document.getElementById(a02id).style; 
    el.display=(el.display == 'block')?'none':'block';
}
</script>
<style>
a {cursor: pointer; cursor: hand; text-decoration: underline}
.skryvany {display: none}
</style>
 
        <td width="80"><a onclick="zobrazSkryj('oddil1')">Detail</a></td>
 <?php endwhile; ?>
</form>

        <div id="oddil1" class="skryvany">
            <?php
   
$detail=mysql_query("Select 05nazev,a05cena
                    from a02objednavka a02, a03polozka_objednavky a03, a05zbozi a05
                    where a02.a02id=a03.a02objednavka_a02id and a03.a05zbozi_a05id=a05.a05id and a02id='".$_POST['a02id']."';
                    ") or die (mysql_error());
while($polozka=mysql_fetch_array($detail)):
            
            ?>
    <label><?php echo $polozka["05nazev"] ;?></label>
    <label><?php echo $polozka["a05cena"] ;?></label><br />
<?php endwhile; ?>  
        </div>            

            
</table>



SLowK:
tak zřejmě je problém v selectu, protože když to hodím do php admina tak to také nic nevybere. Problém je v tom druhém selectu asi vybírám špatné id zkoušel jsem a05id='".$_POST['a02id']."'; ale to také nejde tak já už nevím.
Fisir
Profil
Reaguji na SLowKa:
V době, kdy se vykonává druhý dotaz na databázi ještě v $_POST nic není, nic jsi neodeslal (ověř si to pomocí var_dump($_POST);). Pokud ti z prvního dotazu vyjde více než jeden řádek, může být také problém v tom, že </form> je až za cyklem.

Také bys měl escapovat a příště nepoužít mysql_* rozšíření.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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