Input Feld auslesen

Sharkoon

Mitglied
Hallo zusammen,


habe eine frage bezüglich eines bereits gefülltem Input feld.
Gibt es eine Möglichkeit diesen Inhalt auszulesen und in einer PHP Variable zu speichern, damit ich diese wieder ausgeben kann?
* soll innerhalb einer function ausgegeben werden, aber sollte ja mit global eigentlich möglich sein, oder?


Grüße und vielen dank vorab (y)
 
Lösung
Ich habe mir das input-Tag in #5 noch Mal angesehen und mir scheint, ich habe des Rätsels Lösung gefunden. Du hast in diesem Tag folgende Attribute:
Code:
placeholder="" disabled="" readonly=""
Die Sache ist die: disabled und readonly gelten bereits als gesetzt, wenn das Attribut vorhanden ist. Es genügt also <input name="email" disabled> und das Eingabefeld ist deaktiviert und taucht nicht in den POST-Parametern auf. disabled mit einem Leerstring als Wert hat den selben Effekt. Lösche mal alle leeren Attribute und ich erwarte, dass es dann funktioniert.
Ja gibt es.
Ganz normale Formularübrtragung von HTML an PHP. Oder mittels Ajax.
In PHP kannst du dan ganz normal darauf zugreifen, ob innerhalb einer Funktion oder direkt.
 
Okay geht das auch innerhalb einer function? weil will via PHPMail eine Mail versenden sobald ein Button gedrückt wird daher nutzer ich es in einer function.

Habe schon den normalen Namen welche ich vergeben habe genutzt, aber leider geht das nicht.
Habe ein Input Feld wo eine E-Mail eingetragen ist, diese hat den namen "email" diese soll an die PHPMailer Funktion weiter gegeben werden. Aber irgendwie gehts nicht verstehe nicht wieso
 
Ja, das geht innerhalb einer Funktion.
Aha, erste Hinweise haben wir bekommen. Es geht um den PHP-Mailer.
Du übergibst es irgendwie der Funktion und es geht nicht. Das bedeutet, das du irgendwas falsch machst. Soll ich raten? Zeile 23 ist es.
Ok, Klartext. Her mit deinem verdfammten Code, wie sollen wir helfen wenn wir keine Ahnung haben was du programmiert hast?
 
HTML:
<input name="email" class="form-control form-control-sm" type="text" placeholder="" disabled="" readonly="">
hier wird die email angezeigt, wo die E-Mail hin versendet werden soll.

PHP:
$mail->addAddress('$mail',$name);// E-Mail to...
dort wird die email vergeben, also wohin die e-mail gesendet werden soll.

HTML:
<form action="" method=POST>
    <input class="btn btn-primary btn-sm float-end" type="submit" id="senden" name="senden" value="senden">
</form>

Sobald ich diesen Button klicke, wird die function ausgelöst und somit die email versendet.
 
Das ist immer noch zu wenig Quellcode, um mögliche Fehler zu finden. Was aber auffällt ist
PHP:
$mail->addAddress('$mail',$name);
Lass' mal die ' weg, denn alles was dazwischen ist, wird von PHP nicht geparst, sprich, als Mail-Adresse wird $mail als Text verwendet und nicht der Variableninhalt von $mail
 
Das ist immer noch zu wenig Quellcode, um mögliche Fehler zu finden. Was aber auffällt ist
PHP:
$mail->addAddress('$mail',$name);
Lass' mal die ' weg, denn alles was dazwischen ist, wird von PHP nicht geparst, sprich, als Mail-Adresse wird $mail als Text verwendet und nicht der Variableninhalt von $mail

Die '' sind jetzt gerade nur für den Beitrag drinnen.
PHP:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);

try {
    //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
    $mail->isSMTP();                                            //Send using SMTP
    $mail->Host       = 'smtp.example.com';                     //Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
    $mail->Username   = 'user@example.com';                     //SMTP username
    $mail->Password   = 'secret';                               //SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
    $mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

    //Recipients
    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('joe@example.net', 'Joe User');     //Add a recipient
    $mail->addAddress('ellen@example.com');               //Name is optional
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');

    //Attachments
    $mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name

    //Content
    $mail->isHTML(true);                                  //Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

so sieht der Quellencode für das versenden der Mail aus.
Versenden tut der Code wie er soll.

Nur soll der teil hier :
PHP:
$mail->addAddress('joe@example.net', 'Joe User');
Mit den infos aus der Input Group geladen werden
 
Hat das seinen Grund, warum die Zeile mit input nicht im Formular steht oder ist das auch nur für diesen Beitrag?:(
 
Der Input wird aus einer Select2 abfrage ermittelt.
Code:
$('#user-suche').on('select2:select', function (event) {
            const
                // selektierte Option bereit stellen:
                selected = $('#user-suche').find(':selected'),
                // Werte für username, email und handy
                // aus den data-Attributen auslesen:
                username = selected.data('username'),
                email = selected.data('email'),
            console.log(selected, event);
            // und in die Eingabefelder eintragen:
            $('input[name="username"]').val(username);
            $('input[name="email"]').val(email);
        });

Dieser gibt diese in ein Data-* Attribut aus
PHP:
data-email="'.$user_result['email'].'"
und durch das Attribut und dem Script wird diese in der Input Group angezeigt.

Edit: Habe es schon mit $_POST etc versucht, aber will die werte einfach nicht übernehmen.
 
Die Select2-Abfrage kommt mir bekannt vor :) Auf jeden Fall müssen die Eingabefelder für username und email in das form-Tag hinein, damit sie als POST-Parameter zur Verfügung stehen.
 
Zurück