[PHP] modifica del body email con checked

fabriaqui

Nuovo Utente
11 Apr 2019
8
0
1
Un cordiale saluto a tutti, premetto che mastico poco di php.
In una pagina web ho più form racchiusi in uno script php come fosse uno per evitare conflitto tra più form nella stessa pagina.
Il problema però sta nella personalizzazione della e-mail inviata dal form ...mi spiego meglio.

variabili...

(e-mail form uno)
PHP:
$mail->Body .= "<strong>Hai ricevuto una richiesta di informazioni.</strong>";
...seguono i campi riempiti nel form...

(e-mail form due)
PHP:
$mail->Body .= "<strong> Hai ricevuto una richiesta di aiuto.</strong>";
...seguono i campi riempiti nel form...

Vorrei che apparisse l'una o l'altra dicitura in base alla spunta di un campo cheched posto nel form stesso denominato x o y

E' possibile fare una cosa come questa ?
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@fabriaqui
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

fabriaqui

Nuovo Utente
11 Apr 2019
8
0
1
:eek: mammamia, cazziato al primo post.
Chiedo scusa Max, avevo letto le regole ma questa parte di è sfuggita. Non lo faccio più :(
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ho capito che,
la scelta del form da inviare, già definisce il corpo del messaggio (info/aiuto)
mentre vorresti scegliere il corpo del messaggio in ciascun form

se ho capito bene,
devi inserire la scelta in entrambi i form
HTML:
<input type='radio' id='tipo' name='tipo' value='I' /> INFO
<input type='radio' id='tipo' name='tipo' value='A' /> AIUTO
nello script richiamato, puoi gestire la scelta del corpo con uno "switch" ( per semplicità e facile comprensione )
PHP:
switch ($_POST['tipo'])
{
  case "I":
    $mail->Body .= "<strong>Hai ricevuto una richiesta di informazioni.</strong>";
    break;

  case "A":
    $mail->Body .= "<strong> Hai ricevuto una richiesta di aiuto.</strong>";
    break;

  default:
    $mail->Body .= "<strong> Hai ricevuto una richiesta.</strong>";
    break;
}
...seguono i campi riempiti nel form...

devi posizionare bene questa scelta nello script di invio della mail
 

fabriaqui

Nuovo Utente
11 Apr 2019
8
0
1
Grazie Marino51 per la risposta, effettivamente mi sono spiegato molto male e domando scusa.

Ho il classico phpmail con form nella pagina html + script con le query + php per l'invio.

Nel formo ho un campo checked con assegnato un value come di seguito...

PHP:
<input type="checkbox" id="spunta_uno" name="spunta_uno" value="prenotazione">

La spunta in questo caso mi serve per la privaci ma vorrei che contestualmente andasse ad indentificarmi il form inviato trasferendo il campo value (nell'esempio prenotazione) nel corpo della e-mail assieme agli altri dati.

Ho provato in questo modo ma non funziona ...

Codice:
script  java

var spunta_uno = $("#spunta_uno").val();
var datastr ='spunta_uno=' + spunta_uno

php

$spunta_uno = $_POST['spunta_uno'];
$mail->Body .= "<br><strong>Tipo di richiesta:</strong> $_POST[spunta_uno]";

(per brevità ho omesso gli altri campi ed il controllo della spunta che restituisce l'errore in fase di invio)

Mi restituisce nella e-mail

Codice:
Tipo di richiesta: [object HTMLInputElement]

Dove sbaglio ?
 

fabriaqui

Nuovo Utente
11 Apr 2019
8
0
1
PS in realtà mi andrebbe bene anche il tuo metodo ma invece che radio devo poter utilizzare o il pulsante di invio o il campo checkbox che andrebbero a svolgere due funzioni contemporaneamente.
Ma nel caso che hai postato tu è sufficiente richiamare i dati son con php ?
Grazie mille.
 

fabriaqui

Nuovo Utente
11 Apr 2019
8
0
1
Niente da fare, il suggerimento di Marino era buono e l'ho messo in atto ma ora ho un problema con la convivenza di più form nella stessa pagina. Come si fa per evitare il conflitto tra form ?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
i form sono definiti nella stessa pagina ma in modo individuale ( form ... /form, form ... /form)
i campi di input possono avere anche gli stessi nomi,
ma devi avere un elemento che li distingue, che potrebbe essere il valore assegnato a ciascun tasto submit ( uno per form )
"submitI" potrebbe essere per info
"submitA" potrebbe essere per aiuto
poi nello script php verificando quale dei due submit arriva, puoi impostare al meglio l'invio della mail

non riesco ad essere più specifico, non avendo codice per capire meglio
 

fabriaqui

Nuovo Utente
11 Apr 2019
8
0
1
Ok posto il codice che è basato sul classico script PHPMailer

Html

HTML:
HTML
<form class="form-inline" id="secondo_form" method="post">

<div id="errore_due" class="error-msg"></div>

<div class="form-group conf-res">
<label>Nome e Cognome</label>
<input type="text" class="form-control" id="nome_cognome_due" name="nome_cognome_due" maxlength="50" spellcheck="false" value="">
</div>

<div class="form-group iata-id">
<label >Telefono</label>
<input type="text" class="form-control iata-input" id="telefono_ass" name="telefono_ass" maxlength="20" value="">
</div>

<div class="view-res" id="invia_due">Invia</div>

<input type="checkbox" id="spunta_due" name="spunta_due" value="B">
</form>
<script src="/js/jquery.min.js"></script>
<script src="/js/jquery_mailer_due.js"></script>
/HTML

poi abbiamo il javascript ...

Codice:
$(document).ready(function(){
$("#invia_due").click(function(){
  
//Recuperiamo tutte le variabili

var valid = '';
var isr = ' manca. </h10>';
var nome_cognome_due = $("#nome_cognome_due").val();
var telefono_ass = $("#telefono_ass").val();
var checkbox_due = $("#checkbox_due").val();


//Eseguiamo una serie di controlli

if (nome_cognome_due.length<1) {
valid += 'Il nominativo'+isr;
}

if (telefono_ass.length<1) {
valid += 'Il telefono'+isr;
}

if ($("#checkbox_due").is(":not(:checked)")){
valid += '<h10>La spunta sulla privacy'+isr;
}


//Se i controlli dei campi form non vengono superati, appare il messaggio di errore.

if (valid!='') {
$("#risposta_due").fadeIn("slow");
$("#risposta_due").html("<b>Errore: </b><br/>"+valid);
$("#risposta_due").css("background-color","#FFFFE5");
}

//Se i controlli vengono superati, compare un messaggio di invio in corso
else {
var datastr ='nome_cognome_due=' + nome_cognome_due + '&telefono_ass=' + telefono_ass;
$("#risposta_due").css("display", "block");
$("#risposta_due").css("background-color","#FFFFE5");
$("#risposta_due").html("<h10>Invio del messaggio in corso..</h10>");
$("#risposta_due").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
}

return false;
});
});

//Creazione della funzione di invio. Si baserà sul nostro file php.
//var datastr ='name=' + name + '&mail=' + mail +'&messaggio=' + encodeURIComponent(messaggio);.

function send(datastr){
$.ajax({   
type: "POST",
url: "invio_mail2.php",
data: datastr,
cache: false,
success: function(html){
$("#risposta_due").fadeIn("slow");
$("#risposta_due").html(html);
$("#risposta_due").css("background-color","#FFFFE5");
setTimeout('$("#risposta_due").fadeOut("slow")',2000);
}
});
}

ed infine il file php

PHP:
<?php

header('Content-type: text/html; charset=utf8');
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf8" />';

$data = date("j F Y G:i");
$tome = "xxxxxxxxxxx";
$soggetto = "Messaggio";
$nome_cognome_due = $_POST['nome_cognome_due'];
$telefono_ass = $_POST['telefono_ass'];
$ip = $_SERVER['REMOTE_ADDR'];


require("phpemail/class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();  // telling the class to use SMTP


$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Host       = "xxxxxxxxxxx"; // sets GMAIL as the SMTP server
$mail->Port       = 587;                   // set the SMTP port for the GMAIL

$mail->Username = "xxxxxxxxxxx"; // SMTP username
$mail->Password = "xxxxxxxxxx"; // SMTP password


$mail->From     = "xxxxxxxxxxxxx";
$mail->FromName = "xxxxxxxxxxxxx";
$mail->AddBCC("$tome");


$mail->WordWrap = 50;

$mail->IsHTML(true); // send as HTML

$mail->Subject  = "Richiesta di assistenza";
$mail->Body .= "<br>";
$mail->Body     .= ("<img src=/img/logo_in_nero.png>") ;
$mail->Body .= "<br>";
$mail->Body .= "<br>";
$mail->Body .= "<strong>Richiesta</strong>";
$mail->Body .= "<br>";
$mail->Body .= "<br><strong>Effettuata il:</strong> $data";
$mail->Body .= "<br>";
$mail->Body .= "<br><strong>Da parte di:</strong> $_POST[nome_cognome_due]";
$mail->Body .= "<br>";
$mail->Body .= "<br><strong>Numero di telefono:</strong> $telefono_ass";



//Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio

if(!$mail->Send()) {
  echo 'Il messaggio NON è stato inviato!<br/>';
  echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo '<p>Messaggio INVIATO Grazie.</p>';
}
?>

Nella stessa pagina ho tre form come questo in cui cambiano i campi. Ciascuno ha i propri file ed i propri name ed id specifici ma vanno in conflitto. Avevo pensato che unendo i tre file php come fosse un unico form avrei risolto ma non ha funzionato.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
JeiMax Modifica codice php personalizzato PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
M [PHP] Modifica account PHP 3
M [PHP] Calcolare costi su modifica orari PHP 4
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
L [PHP] Modifica in tabella ultimo id PHP 5
Q Notice: Undefined index: codice in C:\xampp\htdocs\STAGE\calendario\modifica.php on line 10 PHP 8
Emix [PHP] Ricerca e modifica su due tabelle PHP 26
M [PHP] Tabella datagrid con icona di modifica che cambia in base a parametro PHP 0
K stampa e modifica tabella in php e ms sql PHP 2
A [PHP] [RISOLTO] Modifica record db da form PHP 11
T [PHP] piccola modifica a script (non mio...) PHP 8
Trapano [PHP] modifica simultanea di più campi nel db PHP 1
G Aiuto modifica PHP PHP 1
L Modifica di uno script in php PHP 1
X Modifica PHP+database un pò complessa PHP 1
F [Offro collaborazione][Gratuito] Modifica script PHP,jQuery,GD Library Offerte e Richieste di Lavoro e/o Collaborazione 0
N [RISOLTO]Utente Loggato, Modifica immagine personale in PHP PHP 9
N [RISOLTO]Modifica Profilo Utente PHP PHP 32
M Modifica profilo utente in php mysql PHP 1
simonetta619 Modifica dati con PHP PHP 44
F Modifica php tema ePhoto PHP 6
R modifica dati in tabella php+sql PHP 12
P [PHP] Modifica dell'immagine avatar PHP 41
neo996sps Modifica query PHP con menu a tendina PHP 1
F Modifica Cancella Record tramite Form PHP Mysql PHP 70
R Back-end: modifica dati mysql da form php PHP 5
D Inserrimento/modifica php e mysql PHP 69
Y Aiuto per modifica php PHP 0
Z [PHP/MySql]modifica dei dati PHP 1
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1

Discussioni simili