Kezdőoldal » Számítástechnika » Weblapkészítés » Miért nem működik ez? Php/java...

Miért nem működik ez? Php/javascript

Figyelt kérdés

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?



#semmi nem jut eszembe
2016. nov. 7. 12:31
1 2
 1/13 anonim ***** válasza:
48%
Ez valami hatalmas gányolás leginkább.
2016. nov. 7. 13:07
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:

"Ez valami hatalmas gányolás leginkább."


Naaa, hát ez gonosz volt...

2016. nov. 7. 13:11
 3/13 anonim ***** válasza:

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

2016. nov. 7. 13:19
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:
Most elszomorodtam...
2016. nov. 7. 13:26
 5/13 A kérdező kommentje:

"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.

2016. nov. 7. 14:20
 6/13 anonim ***** válasza:

A

document.getElementById("myBtn").value = string;

sort cseréld ki

$("#myBtn").val(string);

sorra.

2016. nov. 7. 14:43
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:
Egyébként ha már jQuery-t használsz, akkor simán tudsz vele Ajax-on keresztül POST-tal adatokat küldeni, amit eleve a $(".delete").click(function() el tud küldeni és nem kell a rejtett mezővel kínlódni.
2016. nov. 7. 14:46
Hasznos számodra ez a válasz?
 8/13 anonim ***** válasza:
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. :)
2016. nov. 8. 09:10
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:

"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.

2016. nov. 8. 16:55
 10/13 anonim ***** válasza:
"most ezt találtam ki, működik és nem bugos" Vs. "De ez nem működik:..."
2016. nov. 8. 18:02
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!