Twee afhankelijke velden aanpassen met één selectie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert deBeer

Robert deBeer

19/10/2020 23:05:08
Quote Anchor link
Ik heb op enig moment de keuze uit drie verschillende stadia: Ready, Maintenance en Out of Order. In mn database heb ik twee velden, vehStatus en calcOccup waarbij de eerste de tekst van de status opslaat en de 2e als tinyint een 1 of 0 geeft. Voor het berekenen van een bezettingspercentage moet het veld calcOccup naar 0 veranderen op het moment dat een voertuig buiten dienst is. De andere twee stadia moet de calcoccup op 1 staan. Ik krijg t niet voor elkaar, en ws ben ik verkeerd bezig..
Hier wat code waar ik mee aan het stoeien ben.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
          <select id="name" name="name">
            <?php $options=array( "eScoot", "eBike", "Utility");
            foreach ($options as $option) {
              $selected = $option == $vehicle[ 'name'] ? ' selected = "selected"' : '';
              $id = $option;
              $name = $option;
              print "<option value = '$id' $selected> $name </option>"; }
            if( !$option['calcOccup'] == 'Out of Order') {?>

              <input name="calcOccup" value="1"><?php
            } else {?>

              <input name="calcOccup" value="0"><?php
            }
            ?>


Edit:
Code-tags geplaatst. Zie ook de UBB-codes bij de Veelgestelde Vragen.
Gewijzigd op 19/10/2020 23:18:50 door - Ariën -
 
PHP hulp

PHP hulp

27/11/2020 09:18:59
 
- Ariën -
Beheerder

- Ariën -

19/10/2020 23:20:04
Quote Anchor link
Waarom sta je nou steeds verschillende waardes te geven aan variabelen, en deze zelfs te overschrijven?
 
Thomas van den Heuvel

Thomas van den Heuvel

20/10/2020 03:22:42
Quote Anchor link
Aangenomen dat je een dropdown-menu aan het opbouwen bent, zouden dat geen option-velden moeten zijn? En als je van al die verschillende vervoersmiddelen een aparte status wilt bijhouden is wellicht een dropdown-menu niet het handigst? Of maak je een dropdown per vervoersmiddel?

Quote:
vehStatus en calcOccup waarbij de eerste de tekst van de status opslaat en de 2e als tinyint

Maar je vergelijkt calcOccup met een tekst? :/

Ook is $option geen array, maar heeft een tekstuele waarde uit het $options-array, dus deze zal ook nooit een index
calcOccup hebben.

Ik zou voor het ontwikkelen van code het volgende altijd ergens bovenaan je bronbestanden zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');
?>

Zodat foutmeldingen altijd direct op het scherm getoond worden.

Tijd voor een straffe bak koffie?
 
Robert deBeer

Robert deBeer

21/10/2020 23:51:30
Quote Anchor link
Hola, ja tijd voor een heel straf bakkie..

Dat van de dropdown klopt en die wordt aangeroepen in een modal.
Op het moment dat Out of Order geselecteerd is zou automatisch ook de status van calcOccup moeten wijzigen naar 0 wegens onbeschikbaarheid. Hierbij is het voertuig dan niet meer beschikbaar en draait ook niet meer mee in de bezettingsgraad. Dit gebeurt via een edit scherm waarbij ik meerdere zaken kan regelen.

Tijd om alle tips en adviezen te verwerken en een betere manier te zoeken voor de variabelen zonder deze te overschrijven.

Bedankt voor de hulp zover.
Sorry voor de code tags, is me nu duidelijk hoe die te plaatsen.
 
Robert deBeer

Robert deBeer

29/10/2020 21:57:27
Quote Anchor link
De oplossing die ik heb gekozen is om het IF statement zodanig aan te passen dat bij Out of Order er een "hidden" input field zorgt voor de wijzigingen in de database voor de calcOccup.
In principe zou ik gewoon de tekst kunnen gebruiken om te bepalen of een vervoermiddel wel of niet beschikbaar is in de bezettingsgraad, maar het leek me handiger om dat via een extra veld in de database op te lossen. Mss dat ik het later anders ga gebruiken door er bijv het bezettingspercentage van het voertuig in op te slaan, tis maar een ideetje..

@Thomas, bedankt voor de opmerking: "Maar je vergelijkt calcOccup met een tekst? :/"

Dit opende mijn ogen. Ik heb niet het beste database ontwerp, maar voor mij om te leren en te begrijpen voldoet het. Dit is een hobby project.
 



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.