| Autor | Zpráva | ||
|---|---|---|---|
| Akacko Profil |
#1 · Zasláno: 4. 1. 2008, 19:24:45
Jde o editaci menu:
Cyklem vypisuji položky z databáze. Názvy inputů jsou jako pole např. nazev[] a inputem input type="checkbox" name="akce[]" chci označovat a mazat/upravovat data. Mazání jde v klidu. Editace však blbne. Kod editace:
if ( $_POST['sbm_edit'] )
{
foreach ($_POST['action'] as $key => $id)
{
$url = htmlspecialchars(friendlyUrl($_POST['txt_link'][$key]));//pekne url
$db->execute("
UPDATE menu SET
link = '".htmlspecialchars($_POST['txt_link'][$key])."',
url = '".$url."',
title = '".htmlspecialchars($_POST['txt_title'][$key])."'
WHERE
id = '".$id."'
");
}
}
když přepíšu kód do "debuggeru" (místo posíláni do db si to vypíšu na obrazovku) echo " UPDATE menu SET link = '".htmlspecialchars($_POST['txt_link'][$key])."', url = '".$url."', title = '".htmlspecialchars($_POST['txt_title'][$key])."' WHERE id = '".$id."' ... key = '".$key."' "; a zaškrtnu první poličko a zmáčknu editovat, vše bude OK: UPDATE menu SET link = 'První položka', url = 'prvni-polozka', title = 'Toto bude asi první položka' WHERE id = '7' ... key = '0' Zaškrtnu li obě plička, opět vše funguje OK UPDATE menu SET link = 'První položka', url = 'prvni-polozka', title = 'Toto bude asi první položka' WHERE id = '7' ... key = '0' UPDATE menu SET link = 'Druhá položka', url = 'druha-polozka', title = 'Toto bude asi druha položka' WHERE id = '12' ... key = '1' Zaškrtnu li druhe poličko, nastane nepřijatelná chyba UPDATE menu SET link = 'První položka', url = 'prvni-polozka', title = 'Toto bude asi první položka' WHERE id = '12' ... key = '0' ID zůstane 2he položky, ale data se odešlou první položky => dojde k duplikaci. A to by se nemělo stát. Přece když mi to vypíše správné ID, mělo by to vypsat i správné data ne? Omlouvám se za příliš dlouhý kód, ale stručněji jsem to vysvětlit nedokázal. Dík za každou radu. |
||
| tiso Profil |
#2 · Zasláno: 4. 1. 2008, 21:10:02
Toto je správne chovanie, odošle sa iba checkbox ktoré si zaškrtol... Riešením je dať do checkboxu natvrdo index - akce[0], akce[1], ...
|
||
| Akacko Profil |
#3 · Zasláno: 4. 1. 2008, 22:01:36
tiso
Aha, tak proto. Dík. |
||
|
Časová prodleva: 18 let
|
|||
0