Toon posts:

HTML select option in PHP

Pagina: 1
Acties:

Vraag


  • Rolla
  • Registratie: December 2011
  • Laatst online: 15-01 13:25
ik heb een tabel arbeidsmiddelen waar aan de tabellen users en fabrikaat gekoppeld zijn.

Ik heb in PHP een pagina gemaakt om arbeidsmiddelen toe te kunnen voegen. Middels een pull down menu kan een merk gekozen worden en middels een apart pull down menu de gebruiker. Werkt allemaal perfect.

Alleen nu zou ik ook een arbeidsmiddel willen kunnen wijzigen. Hiervoor heb ik op de pagina die alle arbeidsmiddelen toont een link gemaakt "wijzigen". Ik geef in de url het id van het arbeidmiddel mee.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<table>
<?php
            require_once("../pages/connect.php");

            
            if (isset($_GET['id']) && is_numeric($_GET['id']))
        {
            $id = $_GET['id'];
        
        
        
        $sql = ("SELECT * FROM arbeidsmiddelen WHERE arbeidsmiddelID = 1  ") or die (mysqli_error());
        $result = mysqli_query($conn, $sql);

        if(mysqli_num_rows($result)>0) {
        while ($row = mysqli_fetch_assoc($result)) {


              echo "<td><label>ID-Code</label></td>"; 
        echo "<td><input type=text name=code value=" .$row["code"]. "></input></td>";

}
}
?>


Bovenstaand is slechts een gedeelte van de code.

Op het moment dat op wijzigen wordt gedrukt dan wil ik dat in het pull down menu de ingevulde waarde getoond wordt. Dit kan d.m.v. selected toe te voegen aan de <option>. Echter begrijp ik niet hoe ik dat vertaal naar PHP.

Iemand die mij een stukje op weg kan/wil helpen?

Alle reacties


  • Mr. HTTP
  • Registratie: November 2020
  • Laatst online: 09-03-2022
Rolla schreef op zaterdag 20 februari 2021 @ 15:58:
Iemand die mij een stukje op weg kan/wil helpen?
Specs;Vanuit een HTML formulier wordt een speciaal HTTP Request gemaakt, GET requests krijgen formulier gegevens in hun query part in de URL en POST requests krijgen formulier gegevens in de body part.

[Voor 33% gewijzigd door Mr. HTTP op 20-02-2021 16:57]


  • Daos
  • Registratie: Oktober 2004
  • Niet online
Je kan dan toch gewoon op de juiste plek "selected" in je string stoppen of echo-en?

1 van de vele mogelijkheden:
voor:
PHP:
1
echo "<option>" . $name . "</option>";

na:
PHP:
1
2
3
4
5
6
7
8
9
$selected = true; // of false

if ($selected) {
  $selectedAttribute = "selected";
} else {
  $selectedAttribute = "";
}

echo "<option " . $selectedAttribute  . ">" . $name . "</option>";

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 21:24

AW_Bos

Liefhebber van nostalgie... 🕰️

Let er wel even op dat mysqli_error() een connectie als identifier (hier $conn) als argument nodig heeft.
Plus dat je or die or die nu achter je SQL-string zet i.p.v. je query.
Een string zal in PHP niet snel mislukken :+

☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️


  • Aragnut
  • Registratie: Oktober 2009
  • Laatst online: 21:06
Rolla schreef op zaterdag 20 februari 2021 @ 15:58:
...

Op het moment dat op wijzigen wordt gedrukt dan wil ik dat in het pull down menu de ingevulde waarde getoond wordt. Dit kan d.m.v. selected toe te voegen aan de <option>. Echter begrijp ik niet hoe ik dat vertaal naar PHP.

Iemand die mij een stukje op weg kan/wil helpen?
Waar wil je het selected op baseren? En waar moet het selected in komen te staan (ik zie nergens een pulldown menu gemaakt worden). Ik neem aan dat je deze code oproept via een AJAX call oid. Kun je clientside dan niet dynamisch je menu selection aanpassen?

offtopic:
Misschien ook interessant om te kijken naar TinyButStrong, ik vind het een stuk helpen met formatting in een aparte file van de logica

  • Rolla
  • Registratie: December 2011
  • Laatst online: 15-01 13:25
Dank voor de reacties.

In het formulier om een arbeidsmiddel toe te voegen heb ik de pull down menu's gemaakt door middels 2 verschillende query's de data uit de tabellen (users, fabrikaat) op te vragen.

Bij het openen van het wijzigformulier wordt middels het door gegeven id de gegevens van het juiste arbeidsmiddel getoond. In de tabel (arbeidsmiddelen) staat een veld merk (integer). Ik wil dat in het pull down menu alle merken getoond worden, maar als fabrikaatID uit de tabel fabrikaat gelijk is aan de waarde in het veld merk uit de tabel arbeidsmiddelen dan moet dit merk geselecteerd worden.

Voor de duidelijkheid als bij een arbeidsmiddel merk A gekozen is als merk, dan wil ik dat bij het wijzigen merk A geselecteerd is, maar in het pull down menu alle overige merken gekozen kunnen worden, mocht merk gewijzigd moeten worden.

Een if constructie zoals Daos noemt zat ik ook aan te denken, maar dan zal ik toch iets moeten maken dat als arbeidsmiddelen.merk is gelijk aan fabrikaat.id voeg selected toe aan de option.

  • Aragnut
  • Registratie: Oktober 2009
  • Laatst online: 21:06
Ik volg je nog niet helemaal (laad je de hele pagina dan opnieuw?) maar ik denk dat je zoekt naar de optie "selected" in je dropdown menu. https://www.w3schools.com/tags/att_option_selected.asp

Bij het opbouwen van je pagina vul je, op basis van een query, de dropdown lijst met de merken, waarbij je value gelijk zet aan je ID (scheelt terug op zoeken) en weergave op de naam. Daarbij moet je een check uitvoeren of de fabrikaatID gelijk is aan het geselecteerde en dan "selected" toevoegen zodat dat het standaard geselecteerde item is in de dropdown. Daarnaast heb je een query om je tabel op te bouwen op basis van je selectie.

Klopt het dat je een pagina wil die een beetje lijkt op:

<dropdown menu> [T&J products] <knop "ophalen">
<tabel (van T&J products dingen)>
<artikel 1><aantal><beschrijving><whatever>
<artikel 2><aantal><beschrijving><whatever>
<artikel 3><aantal><beschrijving><whatever>
<einde tabel>

  • Rolla
  • Registratie: December 2011
  • Laatst online: 15-01 13:25
Ik zal het proberen te verduidelijken.

Ik heb een pagina arbeidsmiddelen. Dit is een overzicht van alle arbeidsmiddelen. Achter elke regel staan 3 hyperlinks om te kunnen verwijderen, wijzigen en de details op te vragen.

Wordt er op wijzigen gedrukt dan wordt een nieuw pagina geopend en op basis van $_GET["id"] en is_numeric wordt het juiste arbeidsmiddel opgevraagd en gecontroleerd of de waarde numeriek is. Op deze pagina heb ik een formulier met de volgende velden.

ID ( = id nummer arbeidsmiddel, deze start bij 3200)
ID-code ( = oud id nummer, uit een Excel lijst)
Omschrijving
Merk = <dropdown menu> is numeriek en gekoppeld aan het veld fabrikaatID uit tabel fabrikaat
Type
Locatie/Persoon = <dropdown menu> is numeriek en gekoppeld aan het veld userID uit tabel users.

De pagina wordt gevuld middels een query, waarbij ik filter op de doorgeven "id'. Voor de dropdown menu's heb ik 2 aparte query's.

Wellicht is het doorgeven alleen arbeidsmiddelID niet voldoende en zal ik in de hyperlink ook fabrikaatID en userID mee moeten geven, zodat ik daar op kan filteren. Middels een if constructie kan ik dan controleren of een waarde gelijk is aan fabrikaatID of userID en dan selected meegeven aan de <option>

  • Aragnut
  • Registratie: Oktober 2009
  • Laatst online: 21:06
In je get zou ik zeker deze info mee sturen als je hem al hebt (hoewel met een hyperlink mogelijk post wat makkelijker werkt). Het via een query zoeken van de juiste ID klinkt dan omslachtig als je de info toch al had.

Check bij het inlezen dan wel of alle items ingevuld zijn (anders error pagina maken). Dat bespaard je mogelijk een hoop debug tijd later.

edit: bij een formulier zelf ook gebruikt door een veld vantevoren in te vullen en niet zichtbaar te maken.

[Voor 13% gewijzigd door Aragnut op 22-02-2021 13:13]

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee