Zur Navigation

übergabe von 2 javascript variablen zu einem php Kontaktformular

1 hadida

Hallo,
ich suche nach einer Lösung, js-Variablen an php zu übergeben.

Programmablauf:
Mit dem onclick Befehl wird eine js-funktion gestartet, die mir die Artikelbez.
und die dazugehörige email-adr. (Empfänger) ermittel. Beide Werte werden im
php-Kontaktformular benötigt.
Das php-kontaktformular ist eine eigene Seite(kontakt.php).Diese habe ich aus dem one-com-forum.de heruntergeladen.
Ich habe an einer einfachen Lösung gedacht.

Ich hatte schon daran gedacht die Werte in js in einer Datei zu schreiben und diese in php auszulesen. Aber kann js in Dateien schreiben?
Und wenn ja, wie geht das?

Ich hoffe es kann mir jemand helfen.
Gruß hadida

29.10.2014 14:25

2 Jörg Kruse

Beide Werte werden im
php-Kontaktformular benötigt.

Du kannst mit JavaScript das Formular bearbeiten, z.B. die Werte von (hidden) inputs schreiben. Diese werden dann mit dem Absenden des Formulars an das PHP-Script übertragen.

HTML:
<input type="hidden" id="blabla" name="blabla" value="" />

JavaScript:
document.getElementById("blabla").value = "blubb";

In diesem Fall überträgt das Formular den Parameter blabla=blubb

In PHP enthält dann die Variable $_REQUEST['blabla'] den Inhalt 'blubb'

29.10.2014 14:41 | geändert: 29.10.2014 14:43

3 hadida

Hallo,
danke für die schnelle Antwort. Das ist das was ich brauchte.
Leider hat es noch nicht funktioniert.
Hier der neue Programmablauf:
Ich hoffe es is nur eine Kleinigkeit.
Gruß hadida

HTML

<body>

<input type="hidden" id="emailadr" name="emailadr" value="" />
<input type="hidden" id="artikel" name="artikel" value="" />
.
.
.
JavaScript

<script type="text/javascript" language="JavaScript">
function mailadr()
{ //alert(emailadresse);
document.getElementById('emailadr').value = emailadresse;

parent.frames['rechtsframe'].location.href='kontakt.php';
}
</script>
</head>

Auf der Seite kontakt.php

<?php

// Kontaktformular.org

// Eingefügt js-variable

$mailadr = $_REQUEST['emailadr'];
echo $mailadr;

// Ihre E-Mailadresse
$ihre_emailadresse = $mailadr;
.
.
Hier die Fehlermeldung im Programm kontakt.php
Notice: Undefined index: emailadr in C:\xampp\htdocs\dami\kontakt.php on line 9





30.10.2014 13:05

4 Jörg Kruse

Wo rufst du die Funktion mailadr() denn auf?

Edit:

Notice: Undefined index: emailadr in C:\xampp\htdocs\dami\kontakt.php on line 9

Die beiden inputs befinden sich innerhalb des forms welches nach kontakt.php abgesendet wird?

30.10.2014 13:17 | geändert: 30.10.2014 13:22

5 hadida

Hallo,
so ganz verstehe ich die Frage nicht. Den Ablauf habe ich eigentlich in der Reihenfolge vermutet.

1. im Body, direkt am Anfang werden 2 Variablen definiert mit irgent einen Wert definieret.

Irgentwo in der Mitte des body-bereichs wird die function mailadr() aufgerufen
und die Adresse ermittelt.
Diese wird jetzt dem document.getElementById('emailadr').value = emailadresse; übergeben.
Direkt im Anschluß wird die Seite kontakt.php aufgerufen.
Hier sollte die emaladresse mit $_REQUEST ausgelesen werden

Ich meine die Reihenfolge wäre richtig.
Was meinst Du denn mit forms? Ich habe keine forms.

Gruß hadida


parent.frames['rechtsframe'].location.href='kontakt.php';

30.10.2014 13:41

6 Jörg Kruse

Zitat von Jörg
Die beiden inputs befinden sich innerhalb des forms welches nach kontakt.php abgesendet wird?

Mit meinte ich das <form> Element

Ich verkürze mal auf das wesentliche, um das Prinzip zu verdeutlichen:

test.html:
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Test</title>
</head>
<body>
    <form action="kontakt.php" method="post">
        <input type="hidden" id="emailadr" name="emailadr" value="" />
        <!-- sonstige Elemente des Formulars -->
        <button type="submit">OK</button>
    </form>
    <script>
        function mailadr()
        { 
            var emailadresse = 'maxmuster@example.com';
            document.getElementById('emailadr').value = emailadresse;
        }
        mailadr();
    </script>
</body>
</html>

kontakt.php:
<?php

echo $_REQUEST['emailadr'];

?>

Wenn ich die test.html im Browser aufrufe und auf den "OK"-Button klicke, dann wird mir auf der kontakt.php die Emailadresse 'maxmuster@example.com' angezeigt

Du kannst auch ein normales input nehmen, wenn du möchtest, dass die Emailadresse bereits im Formular angezeigt wird

    <form action="kontakt.php" method="post">
        <input type="text" id="emailadr" name="emailadr" value="" />
        <!-- sonstige Elemente des Formulars -->
        <button type="submit">OK</button>
    </form>

30.10.2014 14:09 | geändert: 30.10.2014 14:10

7 Jörg Kruse

Noch ein wichtiger Sicherheitshinweis:

Du solltest diese Emailadresse nicht als Empfängeradresse im PHP-Script verwenden, weil es für Spammer ein leichtes ist, andere Adressen zu übermitteln und dein Formular so zum Spammen missbrauchen können.

30.10.2014 14:14

8 hadida

Hallo, danke für das Programm.
Ich habe jetzt den Code entsprechend eingefügt.

<form action="kontakt.php" method="post">
<input type="hidden" id="emailadr" name="emailadr" value="" />
<!-- sonstige Elemente des Formulars -->
<button type="submit">OK</button>
</form>

Das OK kann ich auch sehen.

Bis in der js-Function ist alles in Ordnung.
Aber in der Kontakt.php wird wieder der Fehler angezeigt

Hier die Fehlermeldung im Programm kontakt.php
Notice: Undefined index: emailadr in C:\xampp\htdocs\dami\kontakt.php on line 9

Kann es mit dem frame Wechsel zu tun haben

document.getElementById('emailadr').value = madr;
parent.frames['rechtsframe'].location.href='kontakt.php';

Gruß hadida

30.10.2014 15:23

9 Jörg Kruse

Das OK kann ich auch sehen.

... und du hast auch auf den OK-Button geklickt?

Kann es mit dem frame Wechsel zu tun haben

document.getElementById('emailadr').value = madr;
parent.frames['rechtsframe'].location.href='kontakt.php';

Ich kenn die Frame-Konstruktion nicht - kannst du die Seite vielleicht auf einen Webspace hochladen, damit man sich das als ganzes anschauen kann?

30.10.2014 16:23

10 hadida

Ja, das möchte ich schon gerne tun, wenn ich wüsste wie das geht.
Vielleicht ist dies noch ein Hinweis.

Wenn ich das Programm starte, erscheint der Button OK.
Wenn ich den betätige, erscheint sofort das Formular kontakt.php.
Hier darf es noch nicht erscheinen.
Der Programmablauf sieht wie folgt aus:
1. Es wird die Galerie Bilder im rechten frame-Bereich gestartet.(bilder.php)
2. Der Besucher sieht sich die Bilder an und wählt ein Bild aus.
3. Das Bild wird vergrößert dargestellt und die Adresse des Künstlers mit allen Daten (email usw.) eingeblendet. Möchte der Besucher jetzt mit dem Künstler Kontakt aufnehmen, aktiviert er den Button email mit onclick.
Jetzt verzweigt er in das js-script (function email() wie bekannt, und soll das die email-Adresse und die Nummer des angewählten Bild an das Kontaktformular (Kontakt.php) übergeben. Um so mit den Künstler Kontakt aufzunehmen.
Da die Bilder von verschiedenen Künstlern stammen, hat jeder seine eigene email-Adresse.

Also befinden sich auf der Seite bilder.php die form und das js-script und in Kontakt.php die Übernahme der Werte.
Welche Infos werden benötigt und wie kann ich den Webspace nutzen?
Gruß hadida

30.10.2014 17:46