foreach...in foreach (credo)

@lex!

Nuovo Utente
23 Mar 2011
1
0
0
Ciao a tutti,

avrei bisogno una piccola consulenza PHP.

Spiego:
In Flash realizzo un piccolo giochino di arredamento.
Da Flash faccio scrivere un .txt.
Sempre da Flash faccio inviare una mail con il riepilogo delle informazioni selezionate.

Il file .txt è strutturato in questo modo:

sommier=3----Sommier XXX, XXX----misure XXX cm, colorazione XXX----0000,00 euro&piedini=3----Piedini XXX----00,00 euro&testiera=3----Testiera XXX, XXX----misure XXX cm, colorazione XXX----0000,00 euro&cuscini=1----Guanciale XXX----00,00 euro&materasso=1----Materasso XXX----misure XXX cm----000,00 euro&cuscinoaggiunto=1&totale=0000&iva=0


Leggo il txt con il file index.php:

PHP:
<?
$sommier ="sommier=".$_POST["valuessommier"];
$testiera ="testiera=".$_POST["valuestestiere"];
$cuscini ="cuscini=".$_POST["valuescuscini"];
$materasso ="materasso=".$_POST["valuesmaterassi"];
$piedini ="piedini=".$_POST["valuespiedini"];
$cuscinoaggiunto ="cuscinoaggiunto=".$_POST["valuescuscinoaggiunto"];
$totale ="totale=".$_POST["valuestotale"];
$iva ="iva=".$_POST["valuesiva"];

$myFile = "salvataggio.txt";
$scrivere = "$sommier&$piedini&$testiera&$cuscini&$materasso&$cuscinoaggiunto&$totale&$iva";
$fh = fopen($myFile, 'w') or die ("impossibile aprire il file");

fwrite($fh, $scrivere) or die ("impossibile scrivere sul file");
//echo "salvato";
fclose($fh);
  
?>

Invio con questo file invia.php:

PHP:
<? 
$var=fopen("salvataggio.txt","r");
$leggi=fread($var,filesize("salvataggio.txt"));
$sss=nl2br($leggi);
fclose($var);
$es = explode ("&",$sss);
foreach ($es as $articoli){ 
	$num = strpos($articoli, "=");
	$articoli = substr($articoli, $num);
	if($articoli != "="){
	$articoli = str_replace("=","<br>",$articoli);
	$artfinali .= $articoli;
	}
}


$tua_email = "[email protected]";

if (( $_POST["privacy_p"] == 1)) {
	$privacyint = "<br>Acconsente<br>";
	}
	else {
	$privacyint = "<br>Non acconsente<br>";
}
?>
<html>
<head>
<title>Modulo contatti</title>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body topmargin="50" margineight="50">
<table width="400" align="center">
<tr>
<td>

<?php
$tipo = $_POST["tipo_p"];
$sigla = $_POST["sigla_p"];
$nome = $_POST["nome_p"];
$cognome = $_POST["cognome_p"];
$indirizzo = $_POST["indirizzo_p"];
$citta = $_POST["citta_p"];
$telefono = $_POST["telefono_p"];
$email = $_POST["email_p"];
$note = $_POST["note_p"];
if (( $_POST["sigla_p"] == "")) {
	$sigla = "-";
}
if (( $_POST["indirizzo_p"] == "")) {
	$indirizzo = "-";
}
if (( $_POST["citta_p"] == "")) {
	$citta = "-";
}
if (( $_POST["note_p"] == "")) {
	$note = "-";
}

$corpo = '
<html>
<head>
</head>

<body>
<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
    <td colspan="2">';
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<img src="logo_mail.jpg">';
	$corpo .= '<br><br>';
	$corpo .= '<br><br>';
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Tipologia di cliente: </strong>';
	$corpo .= $tipo;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Sigla: </strong>';
	$corpo .= $sigla;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Nome: </strong>';
	$corpo .= $nome;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Cognome: </strong>';
	$corpo .= $cognome;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Indirizzo: </strong>';
	$corpo .= $indirizzo;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Città: </strong>';
	$corpo .= $citta;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Telefono: </strong>';
	$corpo .= $telefono;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>E-mail: </strong>';
	$corpo .= $email;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Note: </strong><br>';
	$corpo .= $note;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Trattamento dei dati personali: </strong>';
	$corpo .= $privacyint;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong><strong>Articoli dei quali si richiede informazioni:</strong> </strong><br>';
	$corpo .= $artfinali;	
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';		
	$corpo .= '</table>
</body>
</html>';
	$mail_in_html .= "MIME-Version: 1.0\r\n";
        $mail_in_html .= "Content-type: text/html; charset=UTF-8\r\n";
	$mail_in_html .= "From:[email protected]\r\n";
	$mail_in_html .= "BCC:$email\r\n";

mail($tua_email,"XXX",$corpo,$mail_in_html);
?>

</td>
</tr>
</table>

</body>
</html>


Funziona tutto...,ma...Ecco la domanda:
come vedete, la variabile $artfinali mi restituisce una stringa composta dai vari articoli ogni qualvolta nel leggere trova una &.

Cosa avrei bisogno ora:
ok la scomposizione in articoli, ma vorrei avere una variabile numerata progressivamente per ogni "sotto articolo".
Es.
articolo1:
sottoarticolo1a: 3
sottoarticolo2b: Sommier XXX, XXX
sottoarticolo2c: misure XXX cm, colorazione XXX
sottoarticolo2d: 0000,00 euro
articolo 2:
sottoarticolo2a: 3
sottoarticolo2b: Piedini XXX
sottoarticolo2c: 00,00 euro
articolo 3:
...


In questo modo posso impaginare meglio il riepilogo nella mail.
Specifico che non vorrei toccare il .fla che è già abbastanza incasinato.

Credo di dover inserire un altro foreach ma non sono stato in grado.

Spero di essere stato chiaro. Scusate se sono stato prolisso.

Chi può darmi una mano?

Grazie e buona giornata!
 

micio86

Utente Attivo
Prova così

PHP:
<? 
$lettere=array('a','b','c',............'z');
$var=fopen("salvataggio.txt","r");
$leggi=fread($var,filesize("salvataggio.txt"));
$sss=nl2br($leggi);
fclose($var);
$es = explode ("&",$sss);
$art=1;
$let=0;
foreach ($es as $articoli){ 
    $num = strpos($articoli, "=");
    echo "Articolo $art:<br />";
    $articoli = substr($articoli, $num).$art.$lettere[$let];
    if($articoli != "="){
     $articoli = str_replace("=","<br>",$articoli);
     $artfinali .= $articoli;
     $art++;
     $let=0;
    }
    else {
       $let++;
    }
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
V Somma foreach PHP 2
Z problemi con foreach insert into PHP 10
P Passare i risultati di un foreach in un modal. Help! PHP 2
I Eecuzione di javascript in ciclo foreach php. PHP 7
P Array da foreach PHP 2
T foreach e fetchAll dove recupero solo l'ultimo record PHP 5
Alex_70 foreach explode query PHP 3
P Jquery event nel foreach php jQuery 3
S [PHP] Ciclo foreach su più array PHP 2
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
M [PHP] Errore in ciclo foreach PHP 1
S Unire due foreach simili PHP 5
M Problema con ciclo foreach per chiusura apertura div in base al numero di record in database PHP 1
L Estrarre e muovere un campo da un foreach PHP 0
C query dentro foreach PHP 1
JackIlPazzo Warning: Invalid argument supplied for foreach() PHP 1
otto9due Problema if elseif o foreach.. o non capisco cosa non funzioni.. PHP 4
otto9due Questione di array.. I risultato del foreach non è quello che voglio.. PHP 4
otto9due Problema inserimento ciclo foreach o while in variabile PHP 1
M Alternativa a foreach ?! PHP 7
W foreach contenuto PHP 0
M Aiuto su come procedere con un ciclo foreach PHP 4
F Warning: Invalid argument supplied for foreach() PHP 3
felino Foreach annidati: soluzione? PHP 1
N Problema aggiornamento dati con foreach PHP 1
M Ricostruire array evitando il foreach PHP 0
N Problema FOREACH() PHP 3
Monital intabellare array bidimensionale, foreach impazziti PHP 13
M Problema Foreach && While PHP 4
M ciclo foreach che non funziona PHP 5
Emix [RISOLTO]Impostare focus su textbox dopo foreach jQuery 16
nuovecode interrompere e riprendere un foreach PHP 1
M problema con ciclo foreach per estrarre dati da un database PHP 22
P Problema con array e foreach PHP 15
M elimina valori doppi in ciclo foreach PHP 3
C Risultati ciclo foreach in tabella PHP 13
nim inserire dati in tabella con ajax (ciclo foreach) Ajax 10
F Rinomina file multipli con foreach PHP 1
Athene Interazione tra il foreach e una tabella html PHP 12
F Foreach PHP PHP 10
F Foreach con link selezionato PHP 3
M Ciclo foreach dentro un ciclo while PHP 5
nim funzione array(); e chiarimenti foreach PHP 6
A incolonnare i risultati foreach HTML e CSS 1
Monital array non riconosciuta fuori dal foreach PHP 9
P Iterazione Foreach dentro un ciclo for PHP 9
I Più foreach in database PHP 1
Z FOREACH o FOR PHP 4
I Eseguire foreach una volta PHP 4

Discussioni simili