string wijzigen zodat er altijd na een "-" een hoofdletter komt
Ik probeer een functie te maken die ervoor zorgt dat als men een achternaam invult in een formulier, deze voldoet aan onderstaande eisen:
- alle woorden beginnen met een hoofdletter
- als er een streep (-) wordt gebruikt, dan moet de eerstkomende letter ook een hoofdletter worden.
Nu is het eerste punt niet zo'n probleem :
Code (php)
1
2
3
4
2
3
4
function validateAchternaam() {
$res .= ucwords(strtolower($_POST["achternaam"]));
$_POST["achternaam"] = $res;
}
$res .= ucwords(strtolower($_POST["achternaam"]));
$_POST["achternaam"] = $res;
}
Maar hoe kan ik dit nu aanpassen dat er ook na elke - een hoofdletter komt?
Dus ik vul b.v. nu in : naam-meisjesnaam, dan wordt dit gewijzigd naar Naam-meisjesnaam
Als ik zou invullen naam - meisjesnaam, dan zou het wel goed gaan, n.l. Naam - Meisjesnaam
Nu heb ik al wel gevonden door strpos dat ik kan vinden of en zo ja op welke positie deze - staat maar daarna stopt het een beetje ............. ;-)
Oftewel iemand enig idee hoe ik daarna verder moet om de eerste waarde na een - ook naar een hoofdletter te wijzigen?
Met vriendelijke groeten,
Arie
Ik zou ucwords() links laten liggen, want dat gaat problemen geven bij tussenvoegsels zoals "van der". Neem maar van mij aan dat heel veel systemen daar idioot veel moeite mee hebben...
Ik heb al een apart veld voor tussenvoegsels dus als het goed is komen die al daarin terecht.
Natuurlijk kan het ook met ucfirst maar dan moet ik weer eerst alle woorden in een aparte string gooien en een lus maken. De velden komen sowieso in ons eigen systeem binnen dus mocht ik problemen krijgen met voorletters, dan kan ik dat in ieder geval vrij snel oplossen ;-)
Maar het ging mij even om de uitdaging om na een - ook een hoofdletter te krijgen, iemand een suggestie?
1. '-' tijdelijk vervangen door ' - ' met spaties;
2. ucwords() eroverheen;
3. ' - ' weer vervangen door '-'.
Maar dat lost het probleem zoals gezegd niet op, want soms moet er wél een hoofdletter na het streepje en soms juist niet. Vlamingen schrijven bijvoorbeeld meestal 'Van' waar Nederlanders 'van' gebruiken bij een tussenvoegsel.
Allebei bedankt voor de input, hiermee moet ik wel weer verder kunnen!
Zeker wanneer er uitzonderingen zijn; en je weet dat die er zijn (is al vermeld).
Je kan met javascript de aandacht trekken en ergens zetten: "bedoelde je ... ?".
Maar je geeft de gebruiker het laatste woord.
Kris Peeters op 31/01/2013 17:24:40:
Ik vind het sowieso not done dat je de input van de gebruiker zomaar gaat veranderen.
Zeker wanneer er uitzonderingen zijn; en je weet dat die er zijn (is al vermeld).
Je kan met javascript de aandacht trekken en ergens zetten: "bedoelde je ... ?".
Maar je geeft de gebruiker het laatste woord.
Zeker wanneer er uitzonderingen zijn; en je weet dat die er zijn (is al vermeld).
Je kan met javascript de aandacht trekken en ergens zetten: "bedoelde je ... ?".
Maar je geeft de gebruiker het laatste woord.
Daar heb je een punt, tot op zekere hoogte ................
Maar als ik altijd 1 op 1 de input van de gebruiker in onze database zou zetten ......... dan wil je niet weten welke rommel er in gezet wordt en dat wil je toch voorkomen ;-)
Het ging mij ook niet om de invoer van de gebruiker te wijzigen maar om in ieder geval het gedeelte wat bij ons in de db terechtkomt, zo goed mogelijk erin te zetten ;-). Klinkt bijna tegenstrijdig maar dat is het niet want er in een groot verschil wat de gebruiker ziet op het scherm en wat er bij ons binnenkomt.
Trouwens, dat kan gebruiksvriendelijk. Met javascript kan je de gebruiker dynamisch berichtjes sturen me de reden waarom ..., die komen dan bv. naast de <input> ...
Zoals je ziet met (login) registratie-formulieren, wanneer het wachtwoord of username niet voldoet aan de eisen.
Gewijzigd op 01/02/2013 14:37:51 door Kris Peeters
Btw, dit gedeelte van het formulier waar ik mee bezig ben is juist de PHP afhandeling voor het geval de gebruiker javascript uit hebt staan dus realtime een gebruikersvriendelijke oplossing maken valt dan even af maar ja, gelukkig hebben niet veel bezoekers javascript uit staan.
Toevoeging op 01/02/2013 14:57:05:
Je kan de gebruiker ook gewoon een melding sturen met de gewijzigde gegevens en vragen of ze hiermee akkoord gaan.
Dit blijft altijd een lastige discussie tot hoever wij als bouwers mogen bepalen hoe de klant de site ervaart en ondervind maar daarbij hebben wij de klantvriendelijkheid altijd hoog in het vaandel staan ;-)
Om nog als laatste een klein voorbeeld te geven, als men bij ons in een formulier bij voorletters b.v. "abc" invult, dan wordt dat automatisch wanneer men naar het volgende veld gaat gewijzigt naar "A.B.C.". En geloof me, men is erg makkelijk in wat er ingevuld moet worden in een formulier. Wij verwerken tienduizenden formuliieren per jaar en ik heb nog nooit een klacht ontvangen dat iemand het niet mee eens was dat zijn voorletters automatisch gewijzigd werden zonder het eerst te vragen van "abc" naar "A.B.C." ............ ;-)