ugrás a tartalomhoz

Linkre felugró dialógus ablak

Anonymous · 2006. Szep. 6. (Sze), 21.18
Van egy HTML link:

<a href="index.php">Katins ide</a>
Ha raktint egy felhasznalo a linkre szeretnem ha megjelenne egy pop-up ablak es valaszthatnek ket opcio kozul (peldaul "OK" es "Cancel").

Ha OK-ra katintok akkor szeretnek PHP-vel egy parancsot lefutatni, ami hozaad egy mySQL tablahoz egy ertek. Peldaul : 1

Ugyanezt szeretnem megcsinalni ha "Cancel"-ra katint a felhasznalo akkor irjon be az adatbazisba egy erteket : 0

A mySQL ertekek beirasa nem gond szamomra. A problema az, hogy szuksegem lenne egy JavaScript peldara vagy kodra amely megjelenit egy pop-up ablakot miutan rakatintok a linkre.

Talaltam a Googlen szamos peldat, de mindegyikben egy gombra kell katintani ahoz, hogy egy "alert" ablak elojojon.

Hogyan lehetne megoldani, hogy linkre katinsak es mukodjon ?

Ha valaki tud segiteni halas lennel !
Koszonom !
 
1

JavaScript

Anonymous · 2006. Szep. 6. (Sze), 21.21

<a href="index.php" onclick="javascript:if(confirm('Biztos?')){return true;}else{return false;}">Kattints ide</a>
2

Koszonom!

Anonymous · 2006. Szep. 6. (Sze), 21.39
Ok de most ha "OK"-ra katint a felhasznalo, a script honnan tudja, hogy melyik PHP kodot kell lefutatni ?
3

kod

Anonymous · 2006. Szep. 7. (Cs), 08.25
Letrehoztam a kovetkezo kodot:

function ConfirmDel() {
    var msg = confirm('Confirm message?');
    
    if (msg == true)
    {
    window.location = "index.php"
    // return msg;
    }
    else
    {
    location.replace("awesome.html");
    }
}

// -->
</script>

<a href="test.html" onclick="return ConfirmDel()">Klik ide</a>
Nem akarja a lapot atiranyitani az index.php-re. En ket mysql_queryt szeretnek lefutatni, nem lehetne valahogy megoldani, hogy ne iranyitsam at a lapot.

Koszonom !
5

meg lehet oldani

Táskai Zsolt · 2006. Szep. 7. (Cs), 08.27
de ne tedd. ha mindkét eset fontos, akkor ez két link. amúgy a kérdésedre az egyértelmű megoldás az AJAX: a betöltött oldalról csak szólsz a szervernek, hogy tegye meg az áhított bejegyzést.
4

továbbmegy vagy nem megy

Táskai Zsolt · 2006. Szep. 7. (Cs), 08.25
ezt dönti el a kérdéssel. vagyis ha OK, akkor ráfut az célURLre (és ott beírsz az adatbázisba, amit akarsz), ha nem, akkor nem. tehát Cancel esetén nem fog semmi az adatbázisba íródni. utóbbi már csak azért sem lenne szerencsés, mert javascript nélkül böngészve a továbbmenés (kérdés nélkül) sikerülne, de a Cancel soha. ha tényleg kell a cancelre is érték, gondold meg, nem két linkre van-e inkább szükséged.
jó munkát,
Tasi
(ja és az egér nélküliekre is gondolj - ne csak az onclick-re - ilyenkor)
6

Cancel

Anonymous · 2006. Szep. 7. (Cs), 08.28
Szukgseg lenne, hogy a Cancel is beirjon egy erteket. Ez a lap egy "Read Receipt"-nek lesz hasznalva. Amikor a felhasznalo raklikel a kapot uzenetre, azt fogja latni, hogy egy Konfirmationt varok tole, ha o nem akarja konfirmalni az uzenetet az adtbazist ertesiteni kell.
7

gondold végig

Táskai Zsolt · 2006. Szep. 7. (Cs), 08.40
gondolkozz el a funkción és a lehetőségeken, az mindig jó. nem ismerem a konkrét rendszeredet, de a következők jutnak róla eszembe:

1. két link: olvasás+visszaigazolás, olvasás+ésmássemmi (ilyenkor amúgy mi van? van egyéb hatása is?)

2a. egy link, ami megnyitja az üzenetet, de felette marhanagy sárga takony van, hogy az üzenet küldője visszaigazolást kér, mi legyen.
2b. egy link, meg is nyitja az üzenetet, de a becsukás két gombos: visszajelzek vagy nem

3a. egy link, Javascripteseknek: feldob egy lightboxos kinézetű divet két linkkel (az üzenet küldője visszajelzést kér, stb., és a két link a két bejegyzést elvégző címre visz, aztán az üzenetre)
3b. egy link, Javascript nélkül böngészőknek: behoz egy oldalt, amin csak a két link van, és hogy most döntsön, és akkor meglátja a tényleges üzenetet. ez valójában 3a-nak a web1.0-s kiterítése.

más most nem jut eszembe, de ha elemzed a konkrét igényt, tudni fogod mit tégy (ha megfejted, hogy súg a dagi hugi).
8

kosz!

Anonymous · 2006. Szep. 7. (Cs), 09.07
Talaltam a kovetkezo oldalon egy dokumentaciot:

http://geekswithblogs.net/azamsharp/archive/2005/09/28/55334.aspx

Meg tudnad mondani esetleg, hogy hova kell rakni a Server Side Methods-okat?
Nem ertek semmit AJAX-hoz.

Kosznom!
9

PHPról volt eddig szó

Táskai Zsolt · 2006. Szep. 7. (Cs), 09.26
az általad linkelt szerveroldali kód C#. PHP-re visszatérve semmi mást nem kell csinálnod, mint az URL-ben hivatkozott PHP-t feltöltöd, és abban a bejövő paramétereknek megfelelően cselekszel. célszerűen ez ugyanaz a kód, mint ami a nem JS esetben hívódik. mindenképp írd meg előbb az AJAX nélküli változatot, és utána turbózd fel. így legalább egyszerre csak szerveroldali, majd csak kliensoldali hibákat kell javítanod. Javascriptből az AJAX-kérést valami JS Library-vel küldd el, pl. Prototype-pal menni fog 1 órán belül (biztos találsz példát is).
10

kosz

Anonymous · 2006. Szep. 9. (Szo), 22.18
Jelenleg van a kovetkezo Javascript kodom :

function MsgReceipt() {
var msg=confirm('User has requested a read receipt - confirm?');
   
if (msg)
{

  return true ;
}
else
{
  return false ;
}

} 
A kovetkezo linkel hivom elo :

<a href="?do=showpm&message=42" onclick="return MsgReceipt()">Message</a>
Konkretan latszik, hogy ha a felhasznalo az "OK"-ra klikel akkor a szkript tovabb megy ha nem akkor megal.

Az szeretnem ha a "Cancel" eseten is tortene valami, peldaul egy 0 erteket irjon az adatbazisba.

Kerlek ha tudnatok segiteni egy kis AJAX kodal halas lennek, nem igazan ismerem a JavaScriptet meg AJAXOT sem, egy PHP projekthez lenne szuksegem a kodra.

Koszonom !
11

maradjunk js alapnál

dummy · 2006. Szep. 10. (V), 13.08
jó a kódod, egy kevés kiegészítéssel:
JS:

function MsgReceipt() {
  if (confirm('User has requested a read receipt - confirm?'))
  {
    window.location = "?do=showpm&message=42&confirmed=1"
  }
  else
  {
    window.location="?do=showpm&message=42&confirmed=0";
  }
}
link:
<a href="?do=showpm&message=42" onclick="MsgReceipt(); return false;">Message</a>
Vedd észre a link onclickjében a return false-t. Ha ez nincs, akkor a fenti scriptet meghívja ugyanúgy, (Nálam, FF alatt látszik a browser historyban), de a link href címén landol végül.
12

Koszonom !

Anonymous · 2006. Szep. 10. (V), 13.16
Koszonom, holnap a munkaban kiprobalom a kodot!
Lenne meg egy kerdesem:

window.location="?do=showpm&message=42&confirmed=0";

A 42-es szamot egy while ciklusbol kapom meg, valami ilyesmi: while ($row = mysql_fetch_array($data);

Be lehetne adni Javascriptnek, hogy tudja melyik szamrol van szo ?
13

ha jól értem...

dummy · 2006. Szep. 10. (V), 14.42
linkbe rakhatod a számot:
<a onclick="MsgReceipt('msg_id'); return false;">
Js függvény pedig átveszi a paramétert:

function MsgReceipt(msg_id) {
  if (confirm('User has requested a read receipt - confirm?'))
  {
    window.location = "?do=showpm&message="+msg_id+"&confirmed=1"
  }
  else
  {
    window.location="?do=showpm&message="+msg_id+"&confirmed=0";
  }
}
14

koszonom

Anonymous · 2006. Szep. 11. (H), 07.42
Egy gond van, nem ertem miert nem iranyitja at a lapot a kov cimre: ?do=showpm&message="+msg_id+"&confirmed=1 ha OK-t nyomok.
Probaltam mar kodot irni JavaScript konyvbol is de ugyanez tortent, nem mukodik az atiranyitas.

Tudnal esetleg valami otletet adni ?

Koszonom !
15

Sikerult!

Anonymous · 2006. Szep. 11. (H), 08.56
OK, vegul sikerult ! Mukodik, eppen ahogy elkepzeltem

Koszonom !