2009-05-18 12 views
0

Ich habe eine PHP-Seite, die mit Javascript, erstellt ein Popup-Fenster, das eine andere PHP-Seite enthält. Die PHP-Seite im Popup-Fenster ist im Grunde ein Formular und wird diesen Wert verwenden, um in eine Datenbank einzufügen. Unter Verwendung die folgende Funktion, um die PHP-Seite in einem Popup zu laden:Übergabe eines Parramters von PHP zu Javascript zurück zu PHP

phppopup('edit_status.php?cmd=EditStatusData') 

function phppopup(page){ 
child1 = window.open (page, "Ebay Auctions", "height=600,width=600,status=yes,toolbar=no,menubar=no,location=no"); 
child1.document.close(); 
} 

Wie kann ich einen Wert von der anrufenden Seite auf der Seite im Popup passieren?

ich im Moment versuchen:

echo "<p><a href=\"#\" onclick=\"updateByEdit('". $username ."', '". $subcat ."')\">Edit User Info</a> 
<p><a href='#' onclick=\"makewindows2('edit_status.php?cmd=EditStatusData&pk=". $pk ."'); return false;\">Historie</a>; 

, das den folgenden HTML-Code generiert:

<a href="#" onclick="updateByEdit('trendsandbrands', 'fakeapproved')">Edit User Info</a> 
</strong></strong></strong></strong></p><p><strong><strong><strong><strong><a href="#" onclick="phppopup('edit_status.php?cmd=EditStatusData&amp;pk='); return false;">Historie</a> 

Es funktioniert gut für updateByEdit, warum nicht für phpopup?

$ pk ist nur eine Ganzzahl, die in der Seite, aus der das Fenster aufgerufen wird, gut angezeigt wird.

+0

Fensternamen (wie „Ebay Auktionen“ sind keine Leerzeichen, wenn Sie dies in MSIE arbeiten wollen – Quentin

+0

@ David - omg, Sorgen die Menschen immer noch über in MSIE etwas Arbeit machen;.?) Nur ein Scherz –

+0

Was IE7 +? –

Antwort

0

Nun, Sie tun es bereits - die GET-Variable in edit_status.php wird einen Eintrag haben, mit key = 'cmd' und value = 'EditStatusData'. Übergeben Sie einfach so viele Parameter, wie Sie benötigen (und beachten Sie dabei, dass solche Daten öffentlich sichtbar sind).

+0

Das ist, was ich dachte, aber es funktioniert nicht ..., siehe überarbeitete Antwort –

0

Fügen Sie einfach die Argumente im Rahmen des Erhaltungs-Anforderung:

phppopup("index.php?var1=value1&var2=value2"); // Get 

usw.

Alternativ ist es Argumente für das Bestehen, wenn es geöffnet bereits ist, verwenden Sie den Griff, der zurückgegeben wird (child1) und Zugriff auf das DOM dieses Fensters über Javascript.

child1.document.getElementById("myelement").innerHTML = "Hello World"; // Parent Child 

Wenn Sie Probleme damit haben, bekommt das Kind Fenster einen Rückruf in dem übergeordneten Fenster über window.opener auszulösen, wenn das Kind Dokument geladen ist, z.B. anstelle ihrer tatsächlichen Äquivalente;

window.opener.myCallback(requestedinfo); // Parent window callback function 
+0

Ich versuche das, aber es scheitert schrecklich –

+0

Diese Methoden werden funktionieren, möglicherweise Post Beweise dafür, dies für uns zu überprüfen? Ich habe das schon mal benutzt. –

0

bemerkte ich, dass die erzeugte HTML eine Abfrage-Zeichenfolge enthält, die HTML-Entitäten hat ('& amp). Stellen Sie sicher, dass updateByEdit (...) keine Entitäten zurückgibt oder die Abfragezeichenfolge nicht korrekt gedruckt wird.

Verwandte Themen