login  Naam:   Wachtwoord: 
Registreer je!
 Forum

foreach()

Offline tbk - 18/10/2006 15:53
Avatar van tbkPHP beginner
  1. <?php
  2. function makeselectbox($datanumber){
  3.  
  4. $database=array( 1 => 'cat_categorie',
  5. 2 => 'cat_jaar',
  6. 3 => 'cat_vesteging',
  7. );
  8.  
  9. $data=$database[$datanumber];
  10. include('config.php');
  11. $query1=mysql_query("SELECT * FROM $data ");
  12.  
  13. $buildarray=mysql_fetch_assoc($query1);
  14.  
  15. echo" <select naam=".$datanumber.">
  16. <option value=\"leeg\">-Maak een keuze-</option>
  17. " ;
  18. foreach($buildarray as $datas){
  19. buildoption($datas['waarde'], $datas['naam']);
  20. };
  21. echo"</select>";
  22. }
  23.  
  24. function buildoption($waarde, $naam){
  25.  
  26. return "<option value='".$waarde."'>".$naam."</option>";
  27. }
  28.  
  29. ?>


volgende functie wordt opgeroepen om een dropdwonmenu aan te roepen, met zo een functie makeselectbox(2)

hij wil ehcter niet de verschillende mogelijkheden displayen..

aangezien ik een noob ben in functions had ik even jullie hulp nodig

11 antwoorden

Gesponsorde links
Offline Rik - 18/10/2006 15:55
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je roept buildoption wel aan, maar met de gereturnde waarde doe je niets. Zet er eens een echo voor: 
Offline tbk - 18/10/2006 15:59 (laatste wijziging 18/10/2006 16:01)
Avatar van tbk PHP beginner als ik dat doe dan uhm:D krijg ik een parse error:D

foreach($buildarray as $datas){
echo buildoption($datas['waarde'], $datas['naam']);
};

zo geeft hij nog altijd niets weer
Offline Thomas - 18/10/2006 16:05
Avatar van Thomas Moderator $buildarray bevat ook maar één option omdat je maar één resultaatregel fetched...
Offline Rik - 18/10/2006 16:07
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Er staat nog een ; achter de }.
Offline tbk - 18/10/2006 16:10
Avatar van tbk PHP beginner ja maar wat moet het dan wel zijn:D Heb eventjes hem gewoon zo geschreven:

  1. $query1=mysql_query("SELECT * FROM $data ");
  2. echo "<select>";
  3. while($blaat=mysql_fetch_assoc($query1)){
  4. echo "<option value='".$blaat['waarde']."'>".$blaat['naam']."</option>";
  5. }
  6. echo "</select>";

en zo geeft hij niet eens data weer...

en wwat is dat van die fetched?
Offline Rik - 18/10/2006 16:14 (laatste wijziging 18/10/2006 16:18)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Zoiets?
  1. <?php
  2. function makeselectbox($datanumber){
  3.  
  4. $database=array( 1 => 'cat_categorie',
  5. 2 => 'cat_jaar',
  6. 3 => 'cat_vesteging');
  7.  
  8. $data=$database[$datanumber];
  9. include('config.php');
  10. $query1=mysql_query("SELECT * FROM $data ");
  11. echo" <select naam=".$datanumber.">
  12. <option value=\"leeg\">-Maak een keuze-</option>";
  13.  
  14. while($datas=mysql_fetch_assoc($query1))
  15. {
  16. echo buildoption($datas['waarde'], $datas['naam']);
  17. }
  18. echo"</select>";
  19.  
  20. function buildoption($waarde, $naam){
  21.  
  22. return "<option value='".$waarde."'>".$naam."</option>";
  23. }
  24.  
  25. ?>


Edit:
FF een klein beetje veranderd. En nog een beetje.
Offline tbk - 18/10/2006 16:15 (laatste wijziging 18/10/2006 16:16)
Avatar van tbk PHP beginner Wat heb je er nu aan verbeterd:D heb hem getest en hij werkt niet echt...
Offline Rik - 18/10/2006 16:17 (laatste wijziging 18/10/2006 16:18)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Kijk en vergelijk! 

Hij gaat nu alle resultaten langs en probeert niet meer alleen het eerste resultaat als een array uit te lezen.

Edit:
Hehe nog wat vergeten! Hierboven heb ik het veranderd.
Offline tbk - 18/10/2006 16:25
Avatar van tbk PHP beginner oké mag ik me het grootste kalf ter wereld noemen?
ja dat mag ik:D

je script werkt volledig, misschien het mijne ook...

van die 3databasen heb ik juist de Database genomen zonder DATA!
Offline Gerard - 18/10/2006 17:53
Avatar van Gerard Ouwe rakker Als er mensen zijn die interesse hebben in mijn functies die ik gebruik:
  1. <?php
  2.  
  3. /**
  4.   * Creates a single option row for a select. A third argument can be passed
  5.   * to the function to be compared to the $sValue. If they match it wil add
  6.   * the selected="selected" to the option so it will be selected by default.
  7.   *
  8.   * @author Gerard Klomp <gerard@theprodukt.com>
  9.   * @version 2.0
  10.   * @param string $sValue
  11.   * @param string $sDisplay
  12.   * @param string $sCompare
  13.   * @return string
  14.   */
  15. function buildOption($sValue, $sDisplay, $sCompare = '') {
  16.  
  17. return '<option value="'.$sValue.'"'.($sValue == $sCompare ? ' selected="selected"' : '').'>'.$sDisplay.'</option>'."\n";
  18.  
  19. }


  1. <?php
  2.  
  3. /**
  4.   * This function creates option fields for a select based on an array with
  5.   * values and an array of display names. It's similar to the buildOption
  6.   * function although this function gives back more options.
  7.   *
  8.   * @author Gerard Klomp <gerard@theprodukt.com>
  9.   * @version 1.0
  10.   * @param array $aArrayValue
  11.   * @param array $aArrayDisplay
  12.   * @param string $sCompare
  13.   * @return string
  14.   */
  15. function buildOptionArray($aArrayValue, $aArrayDisplay, $sCompare = '') {
  16.  
  17. $iArray = count($aArrayValue);
  18. $sOutput = '';
  19.  
  20. for ($i = 0; $i < $iArray; $i++) {
  21. $sOutput .= '<option value="' . $aArrayValue[$i] . '"' . ($aArrayValue[$i] == $sCompare ? ' selected="selected"' : '') . '>' . $aArrayDisplay[$i] . '</option>'."\n";
  22. }
  23.  
  24. return $sOutput;
  25. }
Offline Thomas - 19/10/2006 09:24 (laatste wijziging 19/10/2006 09:24)
Avatar van Thomas Moderator Dat kan ff een stuk korter .

buildOption is niets anders dan buildOptionArray waarbij de text- en value-arrays slechts één element bevatten, dus buildOption zou weg kunnen.

Daarnaast zou je $aArrayValue en $aArrayDisplay kunnen samenvoegen tot één array (met value => display paren?). Ik gebruik voor values altijd numerieke waarden. Deze numerieke waarden verschillen ook allemaal van elkaar (anders zouden dit niet twee verschillende opties zijn ) dus deze lenen zich prima voor de keys van een array.

Korter:
  1. <?php
  2. function buildOptionArray($data, $selected = '')
  3. {
  4. $ret = '';
  5.  
  6. foreach($data as $val => $txt)
  7. {
  8. $sel = ($val == $selected) ? ' selected="selected"' : '';
  9. $ret .= '<option value="'.$val.'"'.$sel.'>'.$txt.'<option>';
  10. }
  11. return $ret;
  12. }
  13. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.244s