login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Extra waarde uitlezen van geselecteerde drop down lijst (Opgelost)

Offline pascalbianca - 22/06/2016 08:30 (laatste wijziging 22/06/2016 14:25)
Avatar van pascalbiancaNieuw lid Ik vul een drop down list met de volgende code.:
  1. <select name="leden"><?php
  2. $dbhost = 'xxxxxx';
  3. $dbuser = 'xxxxxx';
  4. $dbpass = 'xxxxxx';
  5.  
  6. $conn = mysql_connect($dbhost, $dbuser, $dbpass);
  7.  
  8. if(! $conn ) {
  9. die('Could not connect: ' . mysql_error());
  10. }
  11.  
  12. $sql = 'SELECT BGRangImage,BGRang, GGEName FROM leden';
  13. mysql_select_db('xxxxxxx');
  14. $retval = mysql_query( $sql, $conn );
  15.  
  16. if(! $retval ) {
  17. die('Could not get data: ' . mysql_error());
  18. }
  19.  
  20. while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
  21.  
  22. echo "<option value=\"leden\">" . $row['GGEName'] . "</option>";
  23. }
  24. mysql_close($conn);
  25.  
  26. ?></select>


Dit werkt goed.
Maar nu heb ik eronder een input box staan en zou graag de BGRang (ind esql code) hierin willen hebben staan van het lid dat ik op dat moment kies.
Is dit mogelijk zo ja hoe? heb namelijk veel geprobeerd maar krijg het gewoon niet.

mod edit: ff wat spaties verwijderd uit codefragment 

7 antwoorden

Gesponsorde links
Offline Jointjeff - 22/06/2016 09:58 (laatste wijziging 22/06/2016 09:58)
Avatar van Jointjeff HTML interesse Ik zie in het script dat je de mysql extensie nog gebruikt. Deze is depracted (vanaf PHP 5.5). Beter kun je daarom de nieuwe MySQLi gebruiken, zie de tutorial van Thomas:
http://www.site...i_extensie

Hieronder een voorbeeld met jQuery hoe je de BGRang waarde als attribute zou kunnen toevoegen aan de options en vervolgens in een input als waarde definiëren.
Je zou natuurlijk ook eerst een lid kunnen selecteren, deze waarden submitten en in een volgende pagina de BGRang ophalen.


  1. <head>
  2. <meta charset="UTF-8">
  3. </head>
  4. <body>
  5.  
  6. <form method="POST">
  7.  
  8. <p>
  9. <label for="leden">Leden</label>
  10. <select id="leden" name="leden">
  11. <option value="">Selecteer een lid</option>
  12. <option attr-bgrang="bgrang waarde user 1">User 1</option>
  13. <option attr-bgrang="bgrang waarde user 2">User 2</option>
  14. </select>
  15. </p>
  16.  
  17. <p>
  18. <label for="bgrang">BGRang</label>
  19. <input type="text" id="bgrang" name="bgrang">
  20. </p>
  21.  
  22. <p>
  23. <input type="submit">
  24. </p>
  25.  
  26. </form>
  27.  
  28. <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  29. <script type="text/javascript">
  30. $(document).ready(function(){
  31. $('#leden').on('change', function() { // wanneer #leden verandert
  32. var bgrang_val = $('option:selected', this).attr('attr-bgrang'); // waarde van attr-bgrang ophalen
  33. $('#bgrang').val( bgrang_val ); // waarde in de input #bgrang zetten
  34. });
  35. });
  36. </script>
  37.  
  38. </body>
  39. </html>
Bedankt door: Thomas
Offline pascalbianca - 22/06/2016 12:45
Avatar van pascalbianca Nieuw lid Is het ook mogelijk op mijn manier, wil wel later op de nieuwe methode gaan focussen maar heb daar gewoon met mijn werk geen tijd voor helaas.
Offline Thomas - 22/06/2016 14:24 (laatste wijziging 22/06/2016 14:27)
Avatar van Thomas Moderator Nou... Het werk dat je nu denkt te besparen schuif je alleen maar voor je uit. Er komt een moment dat je dit toch zult moeten aanpassen. Het is wellicht toch handiger om wat meer toekomstbestendige code te schrijven (dit staat volgens mij ook in soortgelijke woorden aan het begin van die tutorial ).

Dan over je probleem: wat probeer je uiteindelijk met dat formulier te bereiken, want het klinkt alsof je profielgegevens van een enkel lid wilt wijzigen? Waarom maak je geen formulier waarmee je de gegevens van een (enkel) lid in afzondering (edit_member.php?id=123) kunt wijzigen? Dit lijkt mij vele malen eenvoudiger? En als je tot doel hebt om in 1x meerdere gegevens van meerdere leden te wijzigen, overweeg dan een tabelstructuur met op elke regel de (wijzigbare) lidinformatie waarbij je deze informatie volledig uitschrijft.
Bedankt door: Jointjeff
Offline pascalbianca - 22/06/2016 14:48
Avatar van pascalbianca Nieuw lid Nou Thomas, had mij net klein beetje verdiept in dat nieuw schrijven van MySQLi.

Ik heb op basis van dat nieuw schrijven de volgende code die idem dezelfde output toont zoals mijn oude code werkte.

  1. <select name="leden">
  2. <?php
  3. include_once ('config.php');
  4. //mysqli object georiënteerd - variant #3
  5. $res = $con->query('SELECT * FROM leden');
  6. if ($res === false) {
  7. die('query failed: '.$con->error);
  8. }else{
  9. // afdrukken van aantal resultaten
  10. echo $res->num_rows.' result(s):</br>';
  11. // ophalen van resultaatrijen, gebruik je favoriete fetch functie
  12. while ($row = $res->fetch_assoc()) {
  13. //echo $row['id'].'. '.$row['GGEName'].': '.$row['BGRang'].'</br>';
  14. echo "<option value=\"leden\">" . $row['GGEName'] . "</option>";
  15. }
  16. // resultaat vrijgeven
  17. $res->free();}
  18. ?>
  19.  
  20.  
  21. </select>


Tevens wat je vermeld met de manier van (edit_member.php?id=123) klinkt inderdaad misschien makkelijker maar voor dit doeleinde waar ik het maar nu voor nodig heb, is het denk toch te omslachtig.

Als het met de code van mij zou gaan, dus kies ik het lid in de dropdown dat hij mij de bgrang in een echo laat zien, was ik al ver genoeg want meer heb ik dan niet nodig.
Offline Jointjeff - 22/06/2016 15:10 (laatste wijziging 22/06/2016 15:31)
Avatar van Jointjeff HTML interesse Daar kun je dus het stukje javascript (jQuery) voor gebruiken in mijn voorbeeld. Dan voeg je aan de options de waarde van BGRang als attribute toe, zie ook deze link:

https://jsfiddle.net/4e6tfv9u/1/
Offline Thomas - 22/06/2016 15:17
Avatar van Thomas Moderator @pascal Maar dat stuk code heeft dan enkel tot doel om informatie te tonen niet om informatie te wijzigen? Als dat het geval is: waarom gebruik je dan een formulier :/. Dan is dit formulier meer om informatie te filteren? Indien de lijst van leden te lang is om in 1x weer te geven lijkt mij een (ellenlange?) dropdown ook niet echt handig.
Offline pascalbianca - 22/06/2016 17:55 (laatste wijziging 23/06/2016 08:01)
Avatar van pascalbianca Nieuw lid @Thomas omdat ik het anders niet kan/weet en aangezien ik wel mijn wil toon door het op deze manier te doen.  

@Jointjeff ik heb jou voorbeeld aangepast op mijn code, maar ik zie niets gebeuren.

UPDATE

Net opnieuw zitten te stoeien en heb hem nu werkend op @Jointjeff zijn manier, thx.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s