mailscript als 0 niet meesturen

Status
Niet open voor verdere reacties.
maar hoe zorg je dan dat elk textvak waar iets is ingevuld word doorgestuurd nu wordt toch alleen cocktail doorgestuurd als er iets staat?
 
doe op je actie pagina eens print_r($_POST).

Dat wat je dan op het scherm ziet is de array die door de form verstuurd is naar je actie form.

Op de actie pagina moet je door die array filteren voor de "0".
 
ik neem ff pauze, happie eten (geen kebab!:d)

Dan zal ik het nog ff op me laten inwerken.
 
probeer eens dit:
PHP:
$array = $_POST;
$my_value = "0";
$filtered_array = array_filter($array, function ($element) use ($my_value) { return ($element != $my_value); } );
print_r($filtered_array);

Als het goed gaat dan zijn er nu geen "0" waardes meer in de array en is die ook een stuk korter.

Ik heb hem zelf niet getest!
 
geeft een santax eror
$filtered_array = array_filter ($array, function ($element) use ($my_value) { return ($element = ($my_value); } );
hier staat een fout in maar jha die vind ik natuurlijk niet :d
 
nou dit heb ik getest met een normale array.

PHP:
function check($var)
{
    // returns whether the input  is NOT '0' AND NOT 'Bestel'
	// Nu hou je als het goed is alleen een array over met de bestelling en waardes groter dan '0'
    if($var != '0' && $var != 'Bestel') {
		return $var;
		}
}
$array = $_POST;

$key = array_filter($array,'check'); 

print_r($key);
 
Laatst bewerkt:
oke die werkt maar ik snap niet goed wat ik hiermee moet doen?
 
in het begin had je alle waardes ook waar '0' stond. De '0' hebben we er nu uitgefilterd zodat je nu alleen nog een array hebt met de bestelde items

Als het goed is heb je nu een array over met alleen nog maar relevante info erin.

nu kun je hem met een foreach loop verwerken in je mail.
 
dus een vrij korte mail code :D dus, nu eigenlijk die array versturen in een mail? maar dan opgemaakt? maar wat een foreach loop is weet ik niet dussja :D
 
haha dat dacht ik al!

vandaar dat ik dit als voorbeeldje heb gemaakt.

PHP:
<?php
function check($var)
{
    // returns whether the input  is NOT '0' AND NOT 'Bestel'
	// Nu hou je als het goed is alleen een array over met de bestelling en waardes groter dan '0'
    if($var != '0' && $var != 'Bestel') {
		return $var;
		}
}
$mail_body = ""; //set variable

$nw_array = array_filter($_POST,'check'); 
foreach ($nw_array as $key => $value) {
    $mail_body .= $key." : " .$value."\n";
}

echo $mail_body;


?>

en als je een HTML opmaak gebruikt voor je mail, dan moet je "\n" ff veranderen in "<br>" (line breaks)
 
doormiddel van de functie maken we een nieuwe array (nw_array) daarin komen al de waardes die in de $_POST zitten die niet de waarde '0' of 'Bestel' hebben.

Met de foreach loop zetten we de index in $key en wijzen we de waarde toe aan $value.

In de loop voegen we $key." : " .$value."\n"; toe aan de string $mail_body.

Als laatste laat ik de inhoud van $mail_body weergeven op het scherm.

Ik weet namelijk niet hoe bij jou je verzend.php is opgezet en hoe het daar dan in verwerkt moet worden!
 
Ik snap he maar, eigenlijk, als ik nu alles verander van vb txtkebabcocktail naar kebab_cocktail dan kan die zo verstuurd worden in de mail maar nu omdat de mail nog niet verstuurd wordt maar op het scherm komt, heb ik nog iets:D nu komt het op het scherm, stel je hebt een fout gemaakt, dan kan je zo nog even chekken, en hieronder zetten bestellen, zou ik dan gewoon een mail script moeten maken voor de text in een bepaalde div ? dat die alles dat daarin staat verstuurd naar het e-mail adres?
 
Voor het gemak, zet je hele verzend.php eens online.
Want die moet gaan zorgen dat het bericht verzonden gaat worden.

hihi van php heb je weinig kebab geeten ;)
 
:D klopt, aanpassen lukt wel maar schrijven...

maar de verzendpagina is eigenlijk gewoon een html code waar nu jouw code tussen <?php ?> staat, ik weet niet of het mag maar het gaat wel :D maar moet ik hem dan hier zetten?
maar snap je wat ik bedoel? zo een pagina krijgen om te chekken of het klopt wat je besteld hebt en dan nog een knop bestelling verzenden ofzo eronder die dan weer hetgeen daar boven op het scherm staat verzonden wordt in een mail.
 
het kan wel, maar dan moet dat weer in een form gezet worden en de gegevens in een <input verwerken om ze met de form weer te versturen.

PHP:
function check($var)
{
    // returns whether the input  is NOT '0' AND NOT 'Bestel'
	// Nu hou je als het goed is alleen een array over met de bestelling en waardes groter dan '0'
    if($var != '0' && $var != 'Bestel') {
		return $var;
		}
}
$mail_body = ""; //set variable

$nw_array = array_filter($_POST,'check'); 
foreach ($nw_array as $key => $value) {
    $mail_body .= "<input name=\"".$key."\" value=\"" .$value."\" DISABLED /><br>";
}

echo $mail_body;

Dit zorgt ervoor dat de gegevens weer in een input komen. Maar ze kunnen niet veranderd worden. moet dat wel, verwijder dan DISABLED
ook moeten de NAW gegevens in een input komen Maar dat kan gewoon via de $_POST['name'] en zo
 
Laatst bewerkt:
hmm ik dacht dat ik dan zo de naam er voor kreeg maar dat is dus niet zo, hoe doe ik dat dan, de naam van het text vak nu vb txtkebabcocktail, dat verander ik dan nog naar kebab cocktail maar pas als het klaar is :D

PHP:
function check($var)
{
    // returns whether the input  is NOT '0' AND NOT 'Bestel'
	// Nu hou je als het goed is alleen een array over met de bestelling en waardes groter dan '0'
    if($var != '0' && $var != 'Bestel') {
		return $var;
		}
}
$mail_body = ""; //set variable

$nw_array = array_filter($_POST,'check'); 
foreach ($nw_array as $key => $value) {
    $mail_body .= $_POST['name']
    $mail_body .= "<input name=\"".$key."\" value=\"" .$value."\" DISABLED /><br>";
}

echo $mail_body;
 
Verander deze regel

PHP:
    $mail_body .= "<input name=\"".$key."\" value=\"" .$value."\" DISABLED /><br>";

in deze
PHP:
    $mail_body .= $key.": <input name=\"".$key."\" value=\"" .$value."\" DISABLED /><br>";

dan komt de naam er ook voor te staan
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan