[dojo/dijit] Dialog - Parameterübergabe

Das funktioniert etwas anders... da brauchst du keinen Parameter übergeben, sondern musst das href-Attribut des Dialogs setzen.

Als Pfad halt den Pfad zu deinem PHP-Skript, welches die Daten aus der DB holt und daraus den HTML-Code mit den Infos erstellt und zurückgibt.
Diesen Pfad erweiterst du um den jeweiligen Parameter,...Bsp:

Code:
<a href="javascript:dijit.byId('dialog1').show();" onclick="dijit.byId('dialog1').href='response.php?artist='+escape(this.innerHTML);">Heinz Quermann</a><br>
  <a href="javascript:dijit.byId('dialog1').show();" onclick="dijit.byId('dialog1').href='response.php?artist='+escape(this.innerHTML);">Klaus Kinski</a><br>
  <a href="javascript:dijit.byId('dialog1').show();" onclick="dijit.byId('dialog1').href='response.php?artist='+escape(this.innerHTML);">Boris Jelzin</a><br>
 
  <div class="popup" dojoType="dijit.Dialog" id="dialog1" style="display:none"></div>

...ich bin hier mal davon ausgegangen, dass der Link den Namen enthält(und sonst nichts)...so wie auf deiner Seite.
JS holt also den Namen aus dem Link, hängt ihn an die URL heran und weist sie dem href des Dialogs zu...das wars schon.

Dein PHP-Skript(habs in der URL response.php genannt), kann jetzt mit $_GET['artist'] arbeiten :)

PS.: Sry das ich so Basic Fragen stelle, aber ich hab .... mit DOJO noch nie gearbeitet.

Macht doch nichts, ich bis heute auch noch nicht (es dauert deswegen zuweilen ein wenig, ich muss mich da auch erstmal schlau machen) :-)
 
Hallo,

Vorerst mal recht herzlich Dank für deine Mühe.
Ich habe mich jetzt noch mit Ajax-Requests in dojo beschäftigt und bin zum folgenden Ergebniss gekommen.

Ich habe mir eine Funktion geschrieben welche
  • einen Ajax-Request an mein PopUp schickt, welcher den "Artist" als GET Parameter enthält.
  • den PopUp öffnet

Code:
function showQuickpage(id){
	
       dojo.xhrGet( { 
        
	url: "http://localhost/mv/popup.php?mid="+id, 
        
	handleAs: "text",
        
	timeout: 5000, 
        
	load: function(response, ioArgs) { 
          dojo.byId("quickpage").innerHTML = response;
          return response; // ?
        },
        
	error: function(response, ioArgs) { 
          console.error("HTTP status code: ", ioArgs.xhr.status); 
          return response; 
          }
        });

	dijit.byId("quickpage").show() 
}

Soweit ich jetzt gelesen habe könnte man noch den Parameter mittels "content: ..." übergeben, muss ich aber erst noch ausprobieren.

Ich kann jetzt zwar nicht sagen ob meine Methode so sinnvoll und "schön" programmiert ist, aber zumindest weis ich jetzt wie man einen Ajax-Request absetzt =)
Vielleicht kannst du ja deine Meinung dazu Posten.


... es dauert deswegen zuweilen ein wenig, ich muss mich da auch erstmal schlau machen
Geht sichtlich etwas schneller bei dir als bei mir :)
Woher beziehst du den dein Wissen?

Lg Cyrus
 
Saubere Lösung :)

(Das mit dem Dialog hätte übrigens auch einen AJAX-Request abgesetzt.)

Woher beziehst du den dein Wissen?

Ich gucke wahrscheinlich wie du in deren Dokumentation nach, was, wie ich gestehen muss, keine rechte Freude ist, da sehr unübersichtlich aufgebaut und spärlich kommentiert :(
 
Zurück