Autor | Zpráva | ||
---|---|---|---|
ajajaj Profil |
ahoj, generuju si tabulku pro editaci položek a v každém řádku mám dva checkboxy, potřeboval bych poradit jak z nich udělat něco jako radio, tzn. že může být zaškrtnutý jen jeden - radio nemohu použít, protože vkládám řádky cyklem a potřebuju mít stejné "name", pokoušel jsem se přiřadit do name="neco[číslo řádku]" a to si pak odstranit při zápisu do databáze aby se to uložilo do správného sloupce, ale nepodařilo se mi to vypilovat do funkčního stavu. díky za každou rozumnou radu...
|
||
Str4wberry Profil |
#2 · Zasláno: 28. 3. 2009, 18:46:47 · Upravil/a: Str4wberry
Využít checkboxu je nesmysl. Ukaž kód využívající „name="neco[číslo řádku]"“ někdo Ti ho tu vypiluje do funkčního stavu. Zároveň přesouvám do PHP.
|
||
ajajaj Profil |
ok, tak takhle vypada jeden radek tabulky:
<tr style="background:#eee"><td title="neco">1 <input type="hidden" name="puv[]" value="70"> <input type="hidden" name="idz[]" value="267">neco<strong> neco</strong></td><td>70 <strike></strike></td><td>nedef</td><td><input name="cena[]" value="70" onblur="if(this.value=='') this.value='70';" onfocus="if(this.value=='70') this.value='';" size="6"></td><td><input name="cena_eur[]" value="" onblur="if(this.value=='') this.value='';" onfocus="if(this.value=='') this.value='';" size="6"></td><td><input name="eur_kc[]" value="" onblur="if(this.value=='') this.value='';" onfocus="if(this.value=='') this.value='';" size="6"></td> <td><input type="radio" name="zobrcen[1]" value="1"></td> <!--<--- tahle "1" je číslo řádku vygenerované tabulky--> <td><input type="radio" name="zobrcen[1]" value="2"></td> </tr> ukládací skript: for($j=0;$j<count($_POST['idz']);$j++){ $idz=$_POST['idz'][$j]; $puv=$_POST['puv'][$j]; $cen=$_POST['cena'][$j]; $cen_eur=$_POST['cena_eur'][$j]; if($_POST['kurz']>0) $kurz=",eur_kc='$_POST[kurz]'"; else $kurz=""; if($_POST['ceil_kc']!=="") $ceil_kc=",ceil_kc='$_POST[ceil_kc]'"; else $ceil_kc=""; if($_POST['cena_stav']) $cs=",cena_stav='$_POST[cena_stav]'"; else $cs=""; $sql="UPDATE zbozi SET cena='$cen', cena_puv='$puv', cena_eur='$cen_eur' $cs $ceil_kc $kurz where idz='$idz' "; if(!mysql_query($sql,$con)) {die('Error: ' . mysql_error());}} otázka zní: jak donutit aby $zobcen=$_POST['zobrcen'][$j]; protože je to číslo uloženo "natvrdo" |
||
ajajaj Profil |
#4 · Zasláno: 28. 3. 2009, 19:15:53
zkoušel jsem i něco jako name="zobrcen[1][]" ale ani to neběhalo...
|
||
tiso Profil |
#5 · Zasláno: 28. 3. 2009, 20:00:37
ajajaj - s toho tvojho kódu nie som moc múdry, ale robiť update na všetky riadky keď ich meníš len pár je blbosť. Vysvetli čo chceš presne dosiahnuť.
|
||
ajajaj Profil |
#6 · Zasláno: 28. 3. 2009, 20:22:22 · Upravil/a: ajajaj
vysvetlim, je to tabulka s cenami zboží, těch řádků jsou desítky až stovky...
|
||
Alphard Profil |
#7 · Zasláno: 28. 3. 2009, 21:29:08
ajajaj:
„otázka zní: jak donutit aby $zobcen=$_POST['zobrcen'][$j]; protože je to číslo uloženo "natvrdo"“ jestli to dobře chápu, tak ničemu nevadí, že je uložené "natvrdo", protože odpovídá číslu řádku a můžete se k němu dostat jako ke všemu ostatnímu v cyklu $zobcen=$_POST['zobrcen'][$j] jen s ohledem na to, jestli řádky počítáte od 0 nebo jedničky budete možná muset přičítat jedničku |
||
ajajaj Profil |
#8 · Zasláno: 28. 3. 2009, 22:15:04
to jsem taky zkousel, momentalne mam nasledujici:
for($j=1;$j<count($_POST['idz']);$j++){ $idz=$_POST['idz'][$j]; @$puv=$_POST['puv'][$j]; $cen=$_POST['cena'][$j]; $cen_eur=$_POST['cena_eur'][$j]; $zobrcen=$_POST['zobrcen'][$j]; ale kdyz si nechám vypsat $zobrcen tak je prazdna... |
||
Alphard Profil |
#9 · Zasláno: 28. 3. 2009, 22:34:55
print_r($_POST); |
||
ajajaj Profil |
#10 · Zasláno: 28. 3. 2009, 22:51:46
Alphard
děkuji, už jsem na dobré cestě... |
||
Časová prodleva: 15 let
|
0