Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

HTML select option in PHP

Pagina: 1
Acties:

Vraag


  • Rolla
  • Registratie: december 2011
  • Laatst online: 25-02 16:01
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: 02-06 16:47
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]

Check mijn aanbod in V&A


  • 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
  • Nu online

AW_Bos

Waar ga je heen? ☀

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 :+

Waar ga je heen?


  • Aragnut
  • Registratie: oktober 2009
  • Laatst online: 22:30
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: 25-02 16:01
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: 22:30
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: 25-02 16:01
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: 22:30
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


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True