Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie menu html na podstawie danych z bazy
Forum PHP.pl > Forum > PHP
marcio
Elo mam taki kod:
  1. public static function menu($name, $value, $multiple = false, $css = null)
  2. {
  3.  
  4. self::open_rows_and_cols();
  5.  
  6. $multi = ($multiple === false) ? '' : 'multiple="multiple"';
  7.  
  8. self::$form .= '<select name="'.$name.'" '.$multi.'>';
  9. self::$array_form[$name.'_open'] = htmlspecialchars('<select name="'.$name.'" '.$multi.'>');
  10.  
  11. if(is_array($value))
  12. {
  13. foreach($value as $key => $option)
  14. {
  15. self::$form .= '<option value="'.$key.'">'.$option.'</option>';
  16. self::$array_form[$name.'_'.$key] = htmlspecialchars('<option value="'.$key.'">'.$option.'</option>');
  17. }
  18. }
  19.  
  20. else
  21. {
  22. self::$form .= '<option value="'.$value.'">'.$value.'</option>';
  23. self::$array_form[$name] .= htmlspecialchars('<option value="'.$value.'">'.$value.'</option>');
  24. }
  25.  
  26. self::$form .= '</select>';
  27. self::$array_form[$name.'_close'] .= htmlspecialchars('</select>');
  28.  
  29. self::$array_form[$name] = self::$array_form[$name.'_open'];
  30. unset(self::$array_form[$name.'_open']);
  31.  
  32. foreach($value as $key => $value)
  33. {
  34. self::$array_form[$name] .= self::$array_form[$name.'_'.$key];
  35. unset(self::$array_form[$name.'_'.$key]);
  36. }
  37.  
  38. self::$array_form[$name] .= self::$array_form[$name.'_close'];
  39. unset(self::$array_form[$name.'_close']);
  40.  
  41. self::close_rows_and_cols();
  42.  
  43. }

Problem polega na tym jak zrobic zeby nie byl tak zagmatowany?
Tzn na samym koncu chce miec w
  1. self::array_form[$name]

Cale menu ze wszystkimi elemntami tag select jak i option...idzie to jakos zrobic bez tego unset i bez zbednego kombinowania?bo poki co nie przychodzi m,i nic do glowy....
matino
Może tak:
  1. public static function menu($name, $value, $multiple = false, $css = null)
  2. {
  3.  
  4. self::open_rows_and_cols();
  5.  
  6. $multi = ($multiple === false) ? '' : 'multiple="multiple"';
  7.  
  8. self::$form .= '<select name="'.$name.'" '.$multi.'>';
  9. self::$array_form[$name] = htmlspecialchars('<select name="'.$name.'" '.$multi.'>');
  10. //self::$array_form[$name.'_open'] = htmlspecialchars('<select name="'.$name.'" '.$multi.'>');
  11.  
  12. if(is_array($value))
  13. {
  14. foreach($value as $key => $option)
  15. {
  16. self::$form .= '<option value="'.$key.'">'.$option.'</option>';
  17. self::$array_form[$name.'_'.$key] = htmlspecialchars('<option value="'.$key.'">'.$option.'</option>');
  18. }
  19. }
  20.  
  21. else
  22. {
  23. self::$form .= '<option value="'.$value.'">'.$value.'</option>';
  24. self::$array_form[$name] .= htmlspecialchars('<option value="'.$value.'">'.$value.'</option>');
  25. }
  26.  
  27. self::$form .= '</select>';
  28. //self::$array_form[$name.'_close'] .= htmlspecialchars('</select>');
  29. //unset(self::$array_form[$name.'_open']);
  30.  
  31. foreach($value as $key => $value)
  32. {
  33. self::$array_form[$name] .= self::$array_form[$name.'_'.$key];
  34. unset(self::$array_form[$name.'_'.$key]);
  35. }
  36.  
  37. self::$array_form[$name] .= htmlspecialchars('</select>');
  38. //unset(self::$array_form[$name.'_close']);
  39.  
  40. self::close_rows_and_cols();
  41.  
  42. }
  43.  
marcio
Tak tez myslalem ale bez dodatkowych index'ow i unset to raczej sie nie obejdzie....chyba ze jakos na okolo....coz tak moze byc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.