Input Feld auslesen

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

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)
 

Yaslaw

alter Rempler
Moderator
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.
 

Sharkoon

Mitglied
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
 

Yaslaw

alter Rempler
Moderator
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?
 

Sharkoon

Mitglied
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.
 

m.scatello

Erfahrenes Mitglied
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
 

Sharkoon

Mitglied
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
 

Sharkoon

Mitglied
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.
 

Sempervivum

Erfahrenes Mitglied
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.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…