array van objecten, check voor object met property value is ...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

09/02/2019 17:53:48
Quote Anchor link
Hoi allen,

mijn situatie is als volgt. Ik heb een array van objecten (stdClass objecten). Ik wil weten of een van deze objecten bij de property betaald de waarde 1 heeft. Wat is de beste methode om dit voor elkaar te krijgen?

Einddoel
Ik heb een pagina waar ik facturen heb staan. Deze factuurlijst word standaard gefilterd op onbetaalde facturen. Dan is de tabelkolom "Betaald" dus onnodig. Wanneer de vink "Toon ook betaald" aangezet word worden dus alle facturen, inclusief de betaalde facturen opgehaald. Wanneer er geen betaalde facturen zijn maar "Toon ook betaald" wel aan staat moet de kolom "Betaald" ook niet getoond worden. Met bovenstaande vraagstuk wil ik dit bewerkstelligen.

Situatie nu
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
foreach($aFacturen as $oFactuur){
if ($oFactuur->betaald == 1){
echo "<th>Betaald</th>";
break;
}
}

?>


Ik denk dat de huidige situatie erg omslachtig is. Is er een betere manier?
Gewijzigd op 09/02/2019 18:59:59 door
 
PHP hulp

PHP hulp

29/03/2024 06:12:26
 
Rob Doemaarwat

Rob Doemaarwat

09/02/2019 18:43:35
Quote Anchor link
Je bedoelt dat als je "Toon ook betaald" aanzet, en er is geen enkele betaalde factuur, je de kolom "Betaald" toch niet wil tonen?

Anders is het gewoon simpel:
- standaard (alleen onbetaald): kolom niet tonen
- "Toon ook betaald" aangevinkt: kolom wel tonen
 

09/02/2019 19:00:35
Quote Anchor link
Rob, excusses. Je hebt inderdaad gelijk. Als "Toon ook betaald" is aangevinkt maar er GEEN betaalde facturen zijn de kolom niet getoond moet worden. Ik heb de originele vraagstelling inmiddels aangepast.
 
Rob Doemaarwat

Rob Doemaarwat

09/02/2019 19:41:10
Quote Anchor link
Zo heel omslachtig is het niet volgens mij. Wat je evt. zou kunnen doen is eerst de tabel renderen en de kolom "betaald" een aparte class mee geven (en ook de bijbehorende velden in de head en evt. foot). Ondertussen houd je bij of er "een" record betaald is. Is dat op het einde niet het geval, dan voeg je een stukje CSS in waarmee je de kolom "betaald" verbergt.
 

09/02/2019 19:48:17
Quote Anchor link
Soms is het goed om even bevestiging te krijgen dat je eigenlijk op de goede weg zit, toch?

Rob, jou voorstel klinkt juist omslachtiger dan wat ik nu doe. Bedankt voor de tip maar is het dan denk ik toch beter door te gaan op de toer dat ik nu doe.
 
Ward van der Put
Moderator

Ward van der Put

09/02/2019 21:17:27
Quote Anchor link
"Toon ook betaald" klinkt als een weergave. En als je alleen de weergave wilt aanpassen, is een kleine toevoeging van een class in CSS de snelste en eenvoudigste oplossing. Precies zoals Rob zegt.

Ben je strenger in de leer, dan moet je helemaal terug langs af en alléén de betaalde facturen selecteren uit je data.

De techniek die je nu gebruikt, is een tussenvorm: je selecteert wel alle data, maar verbergt/toont daarvan vervolgens maar een gedeelte in HTML. Dat je dat omslachtig vindt, klopt: het is vlees noch vis. Als je dat structureel wilt verbeteren, zul je van de eerder ingeslagen weg moeten afwijken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.