Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Javascript mit PHP verbinden





Frage

Hallo allerseits, ich wollte mal fragen, ob man Javascript mit PHP verbinden kann? Ich habe nämlich eine Variable in Javascript mit dem Namen "wer". Nun möchte ich aber mit PHP weiterarbeiten. Wie bekomme ich diese Variable in PHP rein? Also ich meine irgendwie so: $wer = <script>wer</script> Aber das ist natürlich völlig falsch. Kann mir jemand helfen? Gruß, Üsch

Antwort 1 von Supermax

JavaScript wird am Client (Browser) ausgeführt, PHP am Webserver. Um Daten zwischen diesen beiden zu übertragen, kann man Webformulare (auch unsichtbare, dynamisch mit JavaScript/DOM generierte) verwenden, oder AJAX.

Antwort 2 von Uesch

und wie mache ich so ein unsichtbares Formular?

Antwort 3 von kicia

------------------------
PHP
------------------------
Variablen übernehmen mit $_GET oder $_POST, zB.:

echo $_GET['xyz'];

------------------------
JavaScript:
------------------------
function sendVariable()
{
var xyz = 123;
document.location = "phpProgramm.php?xyz=" + xyz;
}

---- oder Formular senden: ----

function submitFormular()
{
document.forms.meinFormular.submit();
}

------------------------
HTML:
------------------------
<form name="meinFormular" action="phpProgramm.php" method="get">
<input type="text" name="xyz" value="123">
</form>

------------------------
Feld verstecken:
------------------------
<input type="hidden" name="xyz" value="123">

Antwort 4 von Uesch

So ganz kapiere ich es nicht.
Ich erkläre noch mal genau mein Anliegen:

Ich habe eine Index.php, welche verschiedene Wörter anzeigt. Beim Klick auf eines dieser Wörter öffnet sich ein Popup. Dabei habe ich folgendes Script. Es speichert das, was ich vorher geklickt habe in einer Variable "wer":

<script type="text/javascript">
function pop(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formen.php?"+wen, "Formen", "width=500,height=500,left=100,top=200");
MeinFenster.focus();
}
</script>


Die formen.php erhält nun ein Script zum importieren der Variable:

<script type="text/javascript">
window.onload=function () {
var wer = location.search.substr(1);
}
</script>


Nun möchte ich, dass weitere Daten zu dem Wort angezeigt werden, was ich vorher in der index.php geklickt habe. Diese Daten stehen in einer MySQL-Datenbank und daher würde ich gerne mit PHP diese Daten anzeigen lassen. Doch leider weiß ich nicht wie ich die Variable wer in das PHP kriegen soll.

Ich dachte daran, ein Hiddenfeld zu benutzen, in dem die Variable "wer" steht.
Irgendwie so dachte ich:
<input type="hidden" name="hidden" value="javascript:wer">


Aber so leicht funzt es leider nicht.

Antwort 5 von rendolf

du hast schon alles was du brauchst. mit dem aufruf von "formen.php?"+wen wird die variable wen bereits an php übergeben. abfragen über echo $_GET["wen"];
das javascriptkonstrukt kannst du vollkommen vergessen. das ist bei dieser lösung nicht mehr adäquat, weil es einen anderen zweck erfüllen sollte.

Antwort 6 von rendolf

also mit javascriptkonstrukt meine ich das importieren der variable in js innerhalb der formen.php. javascript brauchst du nur noch für das öffnen des popups.

Antwort 7 von rendolf

sorry hab grad geträumt. die sache muss so aussehen:
statt "formen.php?"+wen
--> "formen.php?user="+wen
dann ist der inhalt der variablen in $_GET["user"];
analog zu diesem thread:
https://supportnet.dethreads/1558832

Antwort 8 von Uesch

Absolut genial, danke!

Könnte ich eigentlich diesen ersten Part
function pop(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formen.php?"+wen, "Formen", "width=500,height=500,left=100,top=200");
MeinFenster.focus();
}


auch mit PHP machen? Die Fenstergröße wäre mir auch egal. Oder geht das nur mit Javascript?

Antwort 9 von rendolf

also das popuppen oder up-poppen eines fensters geht nur mit javascript (sprich nicht mit html).

Antwort 10 von rfb

Zitat:
auch mit PHP machen?
nein, natürlich nicht! PHP läuft auf dem Server (wenn du da irgendwelche Popups zu öffnen versuchst kriegst du höchstens Ärger mit dem Admin), Fenster öffnen läuft aber userseitig, also wenn sämtliche PHP-Scripte längst beendet sind.

Antwort 11 von Uesch

Ich meinte eigentlich den Part, wo er die "wer"-Variable speichert. Also dass man auf einen Textlink klickt und er den Text des Links in einer Variable speichert. Geht das mit PHP?

Antwort 12 von rendolf


<a href="javascript:pop('Otto');">Otto</a>

<script type="text/javascript">
function pop(user) {
MeinFenster = window.open("formen.php?user="+user, "Formen", "width=500,height=500,left=100,top=200");
MeinFenster.focus();
}
</script>


Antwort 13 von rfb

Zitat:
dass man auf einen Textlink klickt und er den Text des Links in einer Variable speichert. Geht das mit PHP?
Nein! Definitiv nicht, denn in dem Moment wo jemand auf einen Link klickt steht PHP nie zur Verfügung.

Du kannst nur durch diesen Link - entweder direkt per HTML in der Form
<a href="script.php?wer=ich">Linktext</a>
bzw. gleich als Formular oder - wenn's denn JavaScript sein soll - per AJAX eine entsprechende Meldung an den Server geben und dort kann das Script darauf reagieren und alles, was übergeben, wurde nach Belieben spreichern.

Antwort 14 von Proggi

man kann mit activescripting ein javascript variablen an ein php-script übergeben und auch wieder laden.

Teilweise kannst du ein IFrame machen (ggfs ein unsichtbares) in dem du eine PHP-Seite ausführst, die wiederum keinen Text anzeigt sondern als inhalt nur ein Javascript ausgibt..

<script>
top.document.x = "neuesXrückgabewert";
top.document.functionsname();
</script>
(im original)
<script>
top.document.x = "<?= $Datenneu ?>";
top.document.functionsname();
</script>


aufgerufen kann die seite dann über das
iframe.php?eingabewert=zuspeichernderwert

so kannst du dynamisch in beide richtungen daten austauschen ohne die eigentliche Seite neu zu laden.
Natürlich funktioniert das nur bei Besuchern die Javascript nicht ausgeschaltet haben.
Es wird aber sehr kompliziert wenn du dann den angezeigten Text noch ändern möchtest. Spätestens da empfehle ich dir das per neuladen der Hauptseite zu realisieren.

Antwort 15 von rfb

@Proggi:
derartige IFrame-Methoden sind dank AJAX nun wirklich nicht mehr zeitgemäß. Mit AJAX kannst du jederzeit Daten zum Server schieben und wieder abholen - direkt - solange JavaScript aktiviert ist (und im IE, der einen einfachen httprequest nicht kennt, zusätzlich ActicveScripting).

Antwort 16 von Proggi

soweit Javascript aktiv ist würde ich aber etwas selbstgeschriebenes schon bevorzugen, da bei Wiki bez Ajax steht, dass "Umfangreiche Tests erforderlich" sind. Zumal auch bei Ajax u.U. wieder auf Javascript zurückgegriffen wird.

@Üsch - Ich rate dir erstmal ab unnötig viel Javascript zu verwenden, und es ist auch eventuell angenehmer wenn Besucher die Seiten normal aufrufen können und so auch den vorwärts/zurückbutten benutzen können, was bei IFrame und Ajaxmethode eventuell nicht korrekt möglich ist.

Damit du Vor/Zurück verwenden kannst, solltest übrigens bei der SQL-Frage die geschichte von $_POST nach $_GET ändern und ein GET-Formular verwenden. Wenn deine Seite nicht zig KB quelltext enthält kannst sowieso besser die Seite neu abschicken um Daten zum Server zu schieben.

Antwort 17 von Proggi

nachtrag

Ajax ist vermutlich ne gute technik um einen Webbasierten Chat wie den SN-Chat neu zu schreiben... war sogar mal über Activescripting mit Iframes realisiert, mit Ajax hätte die anzahl der Reload-fragen noch deutlich reduziert und dabei noch die aktuallität erhöht werden können, da die seite nicht statisch alle 3-5 sekunden neu geladen würde sondern sobald jemand was geschrieben hat.

Antwort 18 von rendolf

@proggi:
du bist auf dem vollkommen falschen dampfer. entgegen der irreführenden überschrift dieses threads, geht es hier gar nicht um das zusammenspiel von php und js. es geht lediglich um einen popuplink.

Antwort 19 von rfb

Zitat:
es geht lediglich um einen popuplink.
sicher? Das ganze Gerede von "eine Variable speichern" klingt nicht danach.

Antwort 20 von Proggi

ich denke rfb und ich sind nicht auf den falschen dampfer...
der popuplink sollte das ja machen, was das anfangsproblem darstellt:

$wer = <script>wer</script>
(B = PHP, U = Java)
das problem ist (wie rfb schon schrieb) nicht so lösbar, da zur Laufzeit des PHP-Codes, das Script nicht ausgeführt wird.

Antwort 21 von rendolf

@proggi
kennst du den vorgängerthread zu diesem problem? ich bilde mir ein, dass er sehr hilfreich ist, um zu verstehen, was üsch bezweckt.
https://supportnet.dethreads/1558284

Antwort 22 von MixMax

es bringt auch nichts mal unter rendolf und mal unter detlef zu schreiben und andere user anzumachen die hätten nicht verstanden worums geht. Wenn du meinst du hast es verstanden, dann schreib doch mal ne eigene Lösung.

Antwort 23 von rendolf

ich habe niemanden angemacht. dafür, dass proggi meiner meinung nach auf dem falschen dampfer war, habe ich die zitat: "irrefühende" überschrift und seine wahrscheinliche unkenntnis des ersten threads angeführt. beides dinge, für die er nichts kann.
Zitat:
Wenn du meinst du hast es verstanden, dann schreib doch mal ne eigene Lösung.

meine lösungen stehen in antwort 7 und 12. um sie zu sehen, musst du nach vorne blättern.
dein problem mit meinen nicks verstehe ich nicht. kannst du vielleicht näher ausführen?

Antwort 24 von MixMax

hatte deine antwort übersehen im text - sorry
es steht dir frei unter jedem beliebigen namen zu schreiben, da ich nur deine letzen beiden Posts gesehen habe sah es nur etwas merkwürdig aus. Kann dich ja leider nicht anschreiben.

Antwort 25 von MixMax

p.s. ich vermute das Problem ist schon seit antwort 7 gelöst da Üschi auch nichts mehr schreibt... außer ne kleine rückfrage..

Antwort 26 von rendolf

ich muss sagen, dass ich grade ziemlichen blutdruck hatte, weswegen ich mir auch den seitenhieb mit dem blättern nicht verkneifen konnte. eigentlich wollte ich noch was ganz andres schreiben. ;-)
ich finds gross, dass du dich entschuldigst, ehrlich!
mag dir vielleicht lapidar vorkommen, aber ich hab auch schon (nicht hier im sn) mit admins zu tun gehabt, die das ums verrecken nicht gebracht haben.
ich weiss nicht, obs andren auch so geht, aber im disput mit superusern fühle ich mich immer schnell ohnmächtig und an die wand gedrängt. naja, jetz is ja wieder alles gut. ;-)

Antwort 27 von Uesch

Danke Jungs,

habs jetzt verstanden!

Gruß,

Üschi

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: