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
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
zkoušel jsem i něco jako name="zobrcen[1][]" ale ani to neběhalo...
tiso
Profil
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
vysvetlim, je to tabulka s cenami zboží, těch řádků jsou desítky až stovky...
Alphard
Profil
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
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
print_r($_POST);
ajajaj
Profil
Alphard
děkuji, už jsem na dobré cestě...

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: