Jak ověřit checkboxy a nové přidat staré vymazat – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak ověřit checkboxy a nové přidat staré vymazat – PHP – Fórum – Programujte.comJak ověřit checkboxy a nové přidat staré vymazat – PHP – Fórum – Programujte.com

 

jAkErCZ0
Stálý člen
4. 6. 2020   #1
-
0
-

Zdravím 

máme objednávku kde máme možnost zakliknout produkty navíc. Ty se pak uloží do databáze ale co když ten původní checkbox odkliknu a dám jiný?

Jak se dá řešit aby to ty odkliklé z databáze smazalo a přidalo nové?

 foreach ($this->exhibitorManager->getPromos() as $promo) {
            if (!$values['promo_' . $promo->id]) {
                continue;
            }
            bdump($this->promo_order);
            $value = array_diff($this->promo_order, array($values['promo_' . $promo->id]));

           // $this->actionManager->createExpositionPromo($promo->id, $order->id);
        }

Někdo mi říkal ať využiji funkci array_diff ale nějak mi to nefunguje..

Díky za typy 

Nahlásit jako SPAM
IP: 77.48.47.–
peter
~ Anonymní uživatel
4016 příspěvků
4. 6. 2020   #2
-
0
-

Netusim z popisu, jak presne ti to funguje.

Checkboxy resim tak, ze mam zvlast tabulku propojeni (id_item_produkt, id_typ_checkboxu, id_item_checkbox).
Kdyz edituji id_item_produkt=112233 a zaskrtnu jine checkboxy, tak smazu vsechny z tabulky propojeni, kde id_item_produkt=112233 a pridam nove podle toho, jake jsou zaskrtnute.

(id_item_produkt, id_typ_checkboxu, id_item_checkbox)
(112233=knihaXYZ, 1=autor, 1=Ales)
(112233=knihaXYZ, 1=autor, 2=Tomas)
(112233=knihaXYZ, 1=autor, 3=Pepa)

Druha moznost je, vytvorit si tabulku propojeni se strukturou (id_item_produkt, checkbox1, checkbox2, ...). Pri Updatu produktu vynulujes odpovidajici radek a prepises na 1 vsechny zaskrtnute

(id_item_produkt, checkbox1, checkbox2, ...)
(112233=knihaXYZ, true=Ales, true=Tomas, true=Pepa, false=Franta, false=Jenda)
Nahlásit jako SPAM
IP: 193.84.207.–
jAkErCZ0
Stálý člen
4. 6. 2020   #3
-
0
-

#2 peter
ale jak ty checkboxy ověřuješ aby si věděl který je zaskrli?

Nahlásit jako SPAM
IP: 37.188.147.–
peter
~ Anonymní uživatel
4016 příspěvků
5. 6. 2020   #4
-
0
-

Html form ti odesila jen zaskrtnute checkboxy.
Co si predstavujes pod overovanim? Jakoze mi dotaz nedava smysl. Pridavam ukazku formulare a cteni pro sql dotazy.
V tom, co sem psal predtim, tam
a) smazes vsechno zaskrtnute pro zvolene id_formulare a pridas jen zaskrtnute. Pokud budes chtit vypsat checkboxy do html, tak nejakym selectem musis s db, kde mas ulozeny seznam checkboxu, vytahnout ten seznam. SELECT * FROM pracoviste. (id_pracoviste, textovy_nazev_pracoviste) -> z toho geneujes html select nebo html checkboxy nebo radiobutony...
b) nebo prepises vsechny na false a prepises jen zaskrtnute na true a ulozis do db jednim inserten nebo updatem

<form>
<label><input type=checkbox name="autor[]" value="1">Ales</label>
<label><input type=checkbox name="autor[]" value="2">Tomas</label>
<label><input type=checkbox name="autor[]" value="3">Pepa</label>
<label><input type=checkbox name="autor[]" value="4">Franta</label>
<label><input type=checkbox name="autor[]" value="5">Jenda</label>
<label><input type=checkbox name="autor2[]" value="Ales">Ales</label>
<label><input type=checkbox name="autor2[]" value="Tomas">Tomas</label>
<label><input type=checkbox name="autor2[]" value="Pepa">Pepa</label>
<input type=submit>
</form>
<?php var_dump($_REUEST); ?>

<form>
<label><input type=checkbox name="autor[0]" value="1">Ales</label>
<label><input type=checkbox name="autor[1]" value="2">Tomas</label>
<label><input type=checkbox name="autor[2]" value="3">Pepa</label>
<label><input type=checkbox name="autor[3]" value="4">Franta</label>
<label><input type=checkbox name="autor[4]" value="5">Jenda</label>
<input type=submit>
</form>
<?php var_dump($_REUEST); ?>

<?php
// Pro insert sql dotazy to preci zjistujes takhle, ne?
$list = isset($REQUEST['autor']) ? $REQUEST['autor'] : '';
foreach ($list as $id)
    {
    echo '<br>id ='. $id;
    }

$list = isset($REQUEST['autor2']) ? $REQUEST['autor2'] : '';
foreach ($list as $name)
    {
    echo '<br>name ='. $name;
    }
?>
Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
peter
~ Anonymní uživatel
4016 příspěvků
5. 6. 2020   #5
-
0
-

vsude melo byt  $_REQUEST, samy preklep, cim jsem starsi :)
 

Nahlásit jako SPAM
IP: 193.84.207.–
Kit+15
Guru
5. 6. 2020   #6
-
0
-

#4 peter 

$list = isset($_REQUEST['autor']) ? $_REQUEST['autor'] : [];

se dá zkrátit na jednodušší 

$list = $_REQUEST['autor'] ?? [];
Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Jak ziskat checkboxy — založil Gibon

Jak vymazat pamět počítače — založil wswolf

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý