Miért nem működik ez? Php/javascript
Van egy majdnem kész weboldal szerkesztőfelületem. Egy dolog kellene az, hogy személyre szabjam a megerősítést a törlés előtt. Lehet szöveget szerkeszteni képet, fájlt feltölteni stb...
De ez nem működik:
Lehívom adatbázisból a kép id-ját, amelyet egy button title attribútumába teszek. Tudom, hogy ez szokatlan, de megvan rá az okom. Erre a buttonra van egy click eseményem, amely annyit tesz, hogy egy hide nevű class-ben lévő (és tényleg display:none-os) form-ot előhoz modal-ként, tudjátok z-index egymilliócsillió, és 100%-os szélesség stb...
A lényeg az, hogy erre a buttonra, ami előhozza a modalt a click esemény még egy myBtn id-val rendelkező div-nek átadja a value értékébe a button title attribútumát.
Ez egy input type hidden, aminek átadja, és a name-je az, hogy parameter. Ha megkapja a parameter ezt az értéket, továbbküldi a php kódnak, és az ez alapján törli a képet. A title attribútumot sikerül kiolvasni, és console.log-olni, de az Istenért nem kerül be a value-be.
Így néz ki a kód, marha egyszerű:
$(document).ready(function() {
$(".delete").click(function() {
$(".hide").toggle(400);
$(".hide").toggleClass("show");
var string = ($(this).attr("title"));
document.getElementById("myBtn").value = string;
});
Ez pedig a két gomb:
echo "<input type='button' class='delete' value='törlés' title='".$row['id']."'>";
echo "<input type='hidden' name='parameter' id='myBtn'>";
A legfurább az, hogy egyszer raktem be ezeket a gombokat, de egyfelől megjelennek a képernyő közepén, másfelől megjelennek oldal hátul, mintha sokkal kisebb lenne a z-indexük. WTF??? Ez mi? És, ha a hidden type-pal rendelkezőt átírom button-ra, akkor ott lesz az id a háttérben, ugye a value lesz a "felirata" a gombnak. Ez mi a fene?
"Ez valami hatalmas gányolás leginkább."
Naaa, hát ez gonosz volt...
Ha eltekintek a syntaxis hibától, ami esetleg csak rész kód másolásából eredhet, akkor is az #1 -es nek van igaza...
pl.: minek 2 toggle !?
egyszer jQuery aztán natív JS -el hívod meg az elemet.
Plusz ha többször megjelenik az adott elem, az megint sugal némi kavarodást a háttérben, ami a JS műküdését is befolyásolja.
pl. ha 2db myBtn ID -vel szerelt gombod van, melyiknek cserélje a value elemét!? :-D
"Plusz ha többször megjelenik az adott elem, az megint sugal némi kavarodást a háttérben, ami a JS műküdését is befolyásolja.
pl. ha 2db myBtn ID -vel szerelt gombod van, melyiknek cserélje a value elemét!? :-D"
Ez igaz, de azt csináltam, hogy event.target.title-el értem el a title tag-eket, majd ezt bevezettem egy változóba, és azt getElementByid-vel beraktam a myBtn-be. Így mindig megkapja azt az egyetlen id-t, amire szükség van a törléshez. Nem mellesleg így nem kellett GET-tel url-ben megadnom az id-t, hanem tudom post-ban átadni az adatokat. Így ez nem biztonságosabb?
Ja és mellesleg működik, habár értem, hogy a programozás esetében azért vannak más kritériumok is, mint az, hogy működjön, de szerintem nem olyan "sz@r" megoldás ez.
A
document.getElementById("myBtn").value = string;
sort cseréld ki
$("#myBtn").val(string);
sorra.
"Ez az ötlet egy kicsit olyan, mint amikor kenyeret rendelsz az internetről, átvételi pontnak egy másik várost határozol meg, majd egy harmadik város bankfiókjában befizetsz az ismerősöd számlájára pénzt, hogy azt átutalja a te számládra, hogy tudjál érte kártyával fizetni. :)"
Alapvetően három állomáson megy át a dolog kettő helyett, annyira nem bonyolult.
Van egy gomb, aminek a value értékébe, onnan event.target-tel egy másik gomb value értékébe, és onnan postba. De, hogyha ilyen megerősítős cumót akarok csinálni, ami személyre szabott, mindenképpen át kell adnom az adatokat valahogy a confirm dialog-nak (feltéve, ha nem az alapértelmezett javascript confirm-ot használom). Tehát ezt a köztes állomás semmiképpen nem tudom kihagyni, tökmindegy, hogy használok-e ajax-ot vagy sem. A felugró ablak submit buttonjával kell elküldenem az id-t, bármit csinálok.
De ha tudtok egyszerűbb megoldást, vevő vagyok rá, most ezt találtam ki, működik és nem bugos.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!