mailscript als 0 niet meesturen

Status
Niet open voor verdere reacties.

dejobse

Gebruiker
Lid geworden
7 jul 2008
Berichten
722
Hallo,
Ik zou een mailscript willen maken voor een bestel formulier met rond de 70 textvakken met allemaal een andere id en name, maar dat lukt me wel maar een bestelling doorkrijgen met 60 lege textvakken en dan moeten zoek naar de ingevulde is niet gebruiksvriendelijk dus stel het textvak is leeg moet hij deze niet sturen (in vb.net zou dit zijn if txtKebab.text < 0 then visible.false ofzo) maar ja dat in php, geen idee hoe ik dit zou moeten doen. dus zou hier iemand mee kunnen helpen?
(hier zit eigenlijk best haast achter, het is voor een examen dat al binnen had moeten zijn :/)

alvast bedankt!
 
Zou je voor de duidelijkheid het script ff online kunnen zetten.

Ik gok dat je iets wilt doen alles:
PHP:
<?php

if($_POST['veldnaam'] != "") 
	{
		//Uitvoeren als er wel iets is ingevuld
	}
?>
 
Hallo, bedankt voor de reactie,

een php script heb ik nog niet geschreven omdat het een abnormaal grote gaat worden
maat de html staat hier elk textvak bij kies van elk gerecht moet verstuurt worden :D dus dat is best veel, dus stel nu, iemand besteld een kebab cocktail, dan moet in de mail staan kebab cocktail: 1

snap je?

ik denk dat er dan dit moet komen.
PHP:
<?php
 
if($_POST['txtkebabcocktail'] != "0") 
    {
        //Uitvoeren als waarde is > 0 is
    }
?>

maar het lijkt me dat er nog iets als
PHP:
then $mail_body .= $_POST['txtkebabcocktail'];

maar ik ben geen held in php :D
 
jij controleert of er nu iets anders is ingevuld dan 0. tussen de quotes moet nix staan, ook geen spatie!

Maar de controle zul je moeten laten gebeuren op de actionpagina waar de form word verwerkt!

<form action="verwerk.php" methode="POST">

PHP:
<?php

if($_POST['txtkebabcocktail'] != "") 
	{
		$mail_body .= $_POST['txtkebabcocktail'];//Uitvoeren als er wel iets is ingevuld
	}
?>
 
Laatst bewerkt:
jij controleert of er nu iets anders is ingevuld dan 0. tussen de quotes moet nix staan, ook geen spatie!

Maar de controle zul je moeten laten gebeuren op de actionpagina waar de form word verwerkt!

<form action="verwerk.php" methode="POST">

huh ik dacht dat we al bezig waren in actie.php want de pagina met alle textvakken is in html... maar zou je 1 voorbeeld willen geven?

dus ik wil dat alle textvakken waar een waarde buite 0 (dat staat standaard ingesteld) ingevuld is verzonden wordt in een mail. maar er zijn zon 800 textvakken dus dit moet wel met copypaste kunnen gebeuren :D maar dat lukt me wel denk k
 
geef de inputvelden die gecontroleerd moeten worden op "0" een zelfde naam mee met een volg nummer.

name_01
name_02
name_0..etc (je ziet waar ik op doel!)

Dan kun je op de actie.php doormiddel van een loop de controle laten uitvoeren!
 
HTML

<input type="text" name="naam_01" value="0" />

<input type="text" name="naam_02" value="0" />

<input type="text" name="naam_03" value="0" />

PHP

for ($i=1; $i < 3; $i++) {
if($_POST['naam_0'.$i] != "")
{
$mail_body .= $_POST['txtkebabcocktail'];//Uitvoeren als er wel iets is ingevuld
}
}

Dit is wel een brute en zeer simpele manier, je kunt ook laten controleren hoeveel naam_xx en verzonden zijn en als de eerste 0 moet dynamische toegevoegd worden als $i < 9.

Wat is zeg, dit is een basic idee om je in een richting te helpen
 
ik snap het script wel denk ik, maar veel meer moet het toch niet zijn?
maar ik kan mijn names gewoon zo laten staan toch?, dan kopier ik heel mijn html code en doe ik find and replace en dan doe ik de codes voor de txt... allemaal weg alleja ik vervang het door for ($i=1; $i < 3; $i++) {
if($_POST['naam_0'.$i] != "")
{
$mail_body .= $_POST[

maar dan iets precieser, dit zou toch moeten lukken he? dan heb ik alle textboxen in het mailscript en worden dus verzonden als er iets anders dan nul is ingevuld?

ik probeer even het php script juist te maken voor de eerst textbox
PHP:
for ( $i >0; $i++) {
if($_POST['txtkebabcocktail'.$i] != "")
{
$mail_body .= "hier zou de naam van de textbox moeten komen: " .= $_POST['txtkebabcocktail'];//Uitvoeren als er wel iets is ingevuld
}
}


klopt dit buiten de hier zou de naam van de textbox moeten komen?
hoe laat ik daar de naam van het textbox komen?
 
Eerst even dit!

Hoe genereer jij de inputs in je html. heb je ze allemaal zitten typen of komen ze uit een database of.......iets anders.

want dan zou je een hiddenfield mee kunnen sturen met het aantal velden die gecontroleerd moeten worden.

voor de namen van de velden, daarvoor zul je een array moeten maken of via de html pagina mee laten sturen.

het ligt er helemaal aan hoe de html pagina word aangemaakt.
 
In principe zijn ze getypt. hieronder vind je de code van een kiesmenu, zo zijn er zon 40.

PHP:
        	<ul id="jsmenu">
            	<li><a>Kies</a>
                	<ul>
                    	<li><input name="txtkebabcocktail" type="text" id="Cocktailsauskebab"  class="textbox"value="0" onClick="SelectAll('Cocktailsauskebab');" /> Cocktail </li>
                    	<li><input name="txtkebablook" type="text" id="lookkebab"  class="textbox"value="0" onClick="SelectAll('lookkebab');" /> Looksaus </li>
                    	<li><input name="txtkebabcurry" type="text" id="currykebab"  class="textbox"value="0" onClick="SelectAll('currykebab');" /> Currysaus </li>
                    	<li><input name="txtkebabketchup" type="text" id="ketchupkebab"  class="textbox"value="0" onClick="SelectAll('ketchupkebab');" /> Ketchup </li>
                    	<li><input name="txtkebabtartaar" type="text" id="Tartaarkebab"  class="textbox"value="0" onClick="SelectAll('Tartaarkebab');" /> Tartaar </li>
                    	<li><input name="txtkebabandalouse" type="text" id="Andalousekebab"  class="textbox"value="0" onClick="SelectAll('Andalousekebab');" /> Andalouse </li>
                    	<li><input name="txtkebabmayonaise" type="text" id="mayonaisekebab"  class="textbox"value="0" onClick="SelectAll('mayonaisekebab');" /> Mayonaise </li>
                    	<li><input name="txtkebabhalfpikant" type="text" id="halfpikkebab"  class="textbox"value="0" onClick="SelectAll('halfpikkebab');" /> Half Pikant </li>
                    	<li><input name="txtkebabpikant" type="text" id="pikantkebab"  class="textbox"value="0" onClick="SelectAll('pikantkebab');" /> Pikant </li>
                    	<li><input name="txtkebabsamurai" type="text" id="samuraikebab"  class="textbox"value="0" onClick="SelectAll('samuraikebab');" /> Samurai </li>
                    	<li><input name="txtkebabgeen" type="text" id="geenkebab"  class="textbox"value="0" onClick="SelectAll('geenkebab');" /> Geen saus </li>         
                    </ul>
                </li>
            </ul>
 
okey, het makkelijkste is om de namen op de actie pagina in een array te stoppen.
zodat je met de $i de naam kunt oproepen in de array.

zoiets:
PHP:
$name = array('Cocktail','Looksaus','Currysaus','Ketchup');
for ( $i >0; $i++) {
	if($_POST['txtkebabcocktail'.$i] != "0")
	{
	$mail_body .= $name[$i]" : " .$_POST['txtkebabcocktail'.$i];//Uitvoeren als er wel iets is ingevuld
	}
}
 
maar dan gewoon voor vb cocktail nog gewone kebab? of zou dit automatisch kunnen, nee zeker, en nu verstuurt hij hem toch als er 0 is ingevuld?
 
probeer anders ff dit, trimmen we eerst de whitespace.
PHP:
$name = array('Cocktail','Looksaus','Currysaus','Ketchup');
for ( $i >0; $i++) {
	if(trim($_POST['txtkebabcocktail'.$i]) != "0")
	{
	$mail_body .= $name[$i]" : " .$_POST['txtkebabcocktail'.$i];//Uitvoeren als er wel iets is ingevuld
	}
}

En automatisch , niet met php. met Jquery zou je iets kunnen doen. Maar als de gebruiker javascript disabled heeft. Dat werkt je pagina niet meer.
 
kzal hem is in verzenden.php zetten maar moet het dan niet zo?

PHP:
$name = array('txtkebabcocktail','txtkebablooksaus','txtkebabcurrysaus','txtkebabketchup');
for ( $i >0; $i++) {
    if(trim($_POST['txtkebabcocktail'.$i]) != "0")
    {
    $mail_body .= $name[$i]" : " .$_POST['txtkebabcocktail'.$i];//Uitvoeren als er wel iets is ingevuld
    }
}
 
Bij je input heb je toch tekst staan. Die array is ervoor om in je mailtje de naam en het aantal te krijgen.

Dus:
cocktail : 3

Anders weet je nog niet weer de waardes voor zijn!
 
dus als je de 2e van het menu erin zet
PHP:
$name = array('Cocktail','Looksaus','Currysaus','Ketchup');
for ( $i >0; $i++) {
    if(trim($_POST['txtkebabcocktail'.$i]) != "0")
    {
    $mail_body .= $name[$i]" : " .$_POST['txtkebabcocktail'.$i];//Uitvoeren als er wel iets is ingevuld
    }


    if(trim($_POST['txtkebablookl'.$i]) != "0")
    {
    $mail_body .= $name[$i]" : " .$_POST['txtkebablook'.$i];//Uitvoeren als er wel iets is ingevuld
    }
}
 
nee dit gaat 100% niet werken

Als je voor elke input een if statement wilt gaan uittypen, dan moet de de for statement eruit. En de array heeft dan ook geen nut meer.

Als je van typen houd, dan kun je het op die manier doen. Maar 99% van de programmeurs hebben een kindje dood aan dubbel typ werk!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan