Autor Zpráva
stepanka
Profil *
Ahoj,

prosím, nemohl by mi někdo poradit s jedním problémem?

Mám ve formuláři obyčejný SELECT:

echo 'Recyklační poplatek': </td><td><select name="id_poplatek" id="id_poplatek_cena" onchange="spocitejcenu_model('.__KURZ__.','.__KURZ_USD__.')">';
          $result7 = mysql_query("SELECT text, id_poplatek, cena FROM recyklacni_poplatky WHERE aktivni='a' ORDER BY id_poplatek") or die(err(1));
          echo '<option value="">Vyber</option>';
          while ($row7 = mysql_fetch_array($result7))
            {
            echo '<option';
            if ($row7['id_poplatek']==$p_id_poplatek) echo ' selected="selected" ';
            echo ' value="'.$row7['cena'] PLUS $row7['id_poplatek'].'">'.$row7['text'].' - '.$row7['cena'].' </option>';
            }
        echo '</select>';


A potřebovala bych mít ve VALUE jak ID, tak CENU. Cenu totiž musím mít ve VALUE každopádně, ale protože mám v databázi několik cen stejných, po uložení někdy nesedí ID. Proto bych tam potřebovala mít CENU, ale znát po odeslání také ID.

Doufám, že mi trochu rozumíte... Vůbec si s tím nevím rady... Jde to nějak řešit?

Děkuju moc.
Kcko
Profil
no odelis si to separatorem a pak na vystupu si to zpracujes.
Ja ve svem fotbalovem systemu mam ve value neco jako

value="$tymID:$hracID:$soutezID:$sezonaID" ...


a pak si to rozparsuju a naplnim nekde kde potrebuju ...
SwimX
Profil
stepanka:
Kcko:
a pak si to rozparsuju a naplnim nekde kde potrebuju ...
$array = explode(':', $value);


<select name="id_poplatek" id="id_poplatek_cena" 

id -> jedinečný identifikátor, máš tu dva, má to význam?
stepanka
Profil *
Děkuju moc za všechny reakce.

Možná jsem se nevyjádřila úplně přesně. Já bych při události onchange na SELECTu potřebovala vědět CENU, a po odeslání formuláře bych potřebovala vědět ID.

Jak je v tom kódu ta část
<select onchange="spocitejcenu_model('.__KURZ__.','.__KURZ_USD__.')">
, tak já mám potom v té JS funkci "spocitejcenu_model" řádek
var poplatek_cena = document.getElementById('id_poplatek_cena').value;
, kde potřebuju znát CENU.

A po odeslání formuláře ukládám do databáze ID.

Nevím jak se z toho vyhrabat :(
Aichi
Profil
nejlepší je si do stránky vypsat ty option pouze s ID a jeste jednou si tam vypsat do JS pole s klicem ID a hodnotou CENA a na onchage delat neco jako

var cena = poleCen[selectBoxElm.value];
SwimX
Profil
stepanka:
tak to udělej, jak radíme :)

value optionů udělej value="$id#$cena"

a v JS:
var poplatek_cena = document.getElementById('id_poplatek_cena').value;
poplatek_cena = poplatek_cena.split("#");
poplatek_cena = poplatek_cena[1];


a do DB
$id = $_POST['option'];
$id = split('#', $id);
$id = $id[0];
stepanka
Profil *
SwimX
Mockrát děkuju, ono to fakt funguje :-) Jsi zlatý člověk, díky!

Aichi
Tomu jsem úplně až tak neporozuměla, ale i tak děkuju za reakci.
SwimX
Profil
stepanka:
Není za co :)
SwimX
Profil
stepanka
Aichi asi myslel něco takovéhoto:
<?php
$r = mysql_query("SELECT cena, id FROM table");
while($row = mysql_fetch_assoc($r)){
  echo "<option value=$row[id]>";
  $js .= "pole[$row[id]] = '$row[cena]';";
}
echo "<script> function spocitejcenu_model(){
                           var pole = new array();
                            $js;
                            
                            var poplatek_cena = pole[document.getElementById('id_poplatek_cena').value];
                            
                          }
           </script>";
?>


a do DB by pak šlo už jen $_POST['option']
stepanka
Profil *
SwimX
To řešení se mi moc nelíbí, ta moje funkce spocitejcenu_model() má 180 řádků a je ve vedlejším souboru. To Tvé je lepší a jednodušší :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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