Geen input maar wel variabelen
Ik heb een aantal pulldown menus.
Iemand kiest in zo'n pulldown menu een aantal, bv. 2.
Dit kan je in meerdere pulldowns doen maar geen enkele pulldown is verplicht om in te vullen.
En als optie A is voorzien van een aantal, maar de overige pulldowns niet, dan wil ik enkel en alleen optie A in een bevestigende email presenteren.
Maar...als voor optie A en bijvoorbeeld ook optie D een aantal is opgegeven wil ik deze natuurlijk beide presenteren.
Nu ziet dat er als volgt uit in de bevestigende email tekst:
optie A aantal 1
-lege regel 1-
-lege regel 2-
optie D aantal 1
[einde]
Met -lege regel- bedoel ik hier ook echt gewoon witte ruimte, nada, niets, maar wel wordt de ruimte ingenomen van een regel.
Hoe zorg ik dat de leeggelaten opties niet verschijnen in dit overzichtje?
Dat dus in dit voorbeeld -lege regel 1- en -lege regel 2- er niet zijn, geen ruimte innemen en dat het er dus als volgt uit ziet in de email:
optie A aantal 1
optie D aantal 1
[einde]
Ik hoop dat ik duidelijk ben. Krijg het maar niet voor elkaar...
met str_replace omzetten in lege regel, telen, of nada
Het zijn namelijk verschillende variabelen...uit verschillende pulldown menus...
Ik heb dus 4 resultaten...en 4 variabelen...hetzij gevuld of niet.
Gewijzigd op 25/12/2010 19:05:23 door Erick Schluter
en je kan toch wel met database doen en dat str_replace
Gewijzigd op 25/12/2010 19:17:00 door Erick Schluter
Code (php)
Gewijzigd op 25/12/2010 19:21:13 door The Force
isset! Ga'k proberen!
vb:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$tekst = "Dit is mijn starttekst <br />";
$tekst .= "Hier is regel 2 van de tekst";
?>
$tekst = "Dit is mijn starttekst <br />";
$tekst .= "Hier is regel 2 van de tekst";
?>
indien je nu $tekst gaat afprinten zal je de 2 regels onder elkaar zien.
Je kijkt dan inderdaad met isSet of er iets is ingevuld maar let op dat je ook goed nakijkt wat er juist is ingegeven uiteraard.
Gewijzigd op 25/12/2010 20:41:54 door Tikkes C
In de emailtekst doet het wat ik wil...maar als ik dezelfde truuk toepas op het HTML gedeelte dat wordt getoond op de website wanneer iemand het formulier heeft verzonden...dan is het weer dezelfde situatie.
Lege regels worden gepresenteerd...of ik nu <br /> of \n gebruik.
?!?
Ik heb nu het volgende:
$tekst = "<p>".$optieA."";
$tekst .= "<br />".$optieB."";
$tekst .= "<br />".$optieC."";
$tekst .= "<br />".$optieD."";
$tekst .= "<br />".$optieE."</p>";
Maar als alleen optieC is aangegeven...zweeft deze als het ware in een witte ruimte van boven en onder 2 regels. Dasniedebedoelingnatuurlijk...
Gewijzigd op 25/12/2010 21:37:15 door Erick Schluter
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$tekst = '<p>';
if (!empty($optieA)) $tekst .= $optieA.'<br />';
if (!empty($optieB)) $tekst .= $optieB.'<br />';
if (!empty($optieC)) $tekst .= $optieC.'<br />';
if (!empty($optieD)) $tekst .= $optieD.'<br />';
if (!empty($optieE)) $tekst .= $optieE;
$tekst .= '</p>';
if (!empty($optieA)) $tekst .= $optieA.'<br />';
if (!empty($optieB)) $tekst .= $optieB.'<br />';
if (!empty($optieC)) $tekst .= $optieC.'<br />';
if (!empty($optieD)) $tekst .= $optieD.'<br />';
if (!empty($optieE)) $tekst .= $optieE;
$tekst .= '</p>';
Bovenstaande code is een mogelijkheid maar zeker niet de allermooiste. Het liefste wil je de opties in een array hebben staan en daar bewerkingen oplos laten, bijvoorbeeld via de functie explode. Maar ik ken de rest van de code niet dus daar zul je zelf even naar moeten kijken.
Gewijzigd op 25/12/2010 22:32:40 door Ozzie PHP
Jouw oplossing maakt mijn verhaal helemaal af!
Thanks guys, wat moet ik toch zonder jullie...
Graag gedaan Erick.
Gebruik om te controleren of strings leeg zijn liever:
Of:
Blanche - op 27/12/2010 10:34:30:
Correct, maar het gaat om het kiezen van een aantal in een pull down menu en je kunt natuurlijk niet een aantal van 0 kiezen :) Dus empty werkt hier wel.Let op dat het gebruik van empty() hier niet echt handig is. De functie empty() zal namelijk ook 'true' terug geven als de waarde '0' of null is...
Erick Schluter op 25/12/2010 18:37:40:
Iemand kiest in zo'n pulldown menu een aantal, bv. 2.[einde]
Gewijzigd op 27/12/2010 10:45:55 door Ozzie PHP
Het is inderdaad een situatie die niet snel voorkomt, maar het is een leuke bug om op te sporen als je er toch tegenaan loopt. Je zoekt je rot :-)
hehe... ja, das waar :)