Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: budowanie zapytania http niepotrzebne index'y
Forum PHP.pl > Forum > PHP
marcio
elo cos mi nie smiga w php tak jak bym chcial...troche dawno w nim nie kodzilem i na dodatek nie mam juz glowy i mam banalny problem ktorego nie potrafie rozwiazac:
  1. protected function set_form_action()
  2. {
  3.  
  4. $action = '';
  5.  
  6. foreach($this -> column_to_form_action as $column_name)
  7. {
  8. if(array_key_exists($column_name, $this -> fields[0]))
  9. {
  10. if(!$this -> nice_url)
  11. {
  12. $action_params[] = array(
  13. $column_name => $this -> fields[0][$column_name]
  14. );
  15. $action .= '?';
  16. }
  17.  
  18. else
  19. $action .= $this -> fields[0][$column_name] . $this -> params_separator;
  20. }
  21. }
  22.  
  23. return ($this -> nice_url) ? substr($action, 0, strlen($action) - 1) : urldecode(http_build_query($action_params, '', '&'));
  24. }

print_r($action_params) daje mi:
Kod
Array ( [0] => Array ( [id] => 2 ) [1] => Array ( [autor] => marcio ) )

A metoda zwraca:
Cytat
0[id]=2&1[autor]=marcio

kurde dodaje mi niepotrzebnie index'y i te "[]" wtf? bo dodaje elementy do tablicy w petli...jakos nie potrafie znalesc teraz rozwiazania a bez niego nie bede spokojnie spal...w sumie na okolo by sie dalo ale nie chce pisac kilka linijek zbednego kodu.
urlencode() dalem bo mi te smieci ktorych nie chce parsowaly sie do url'a

EDIT:
nvm...na stringach tak jak wczesniej i hula:
  1. protected function set_form_action()
  2. {
  3.  
  4. foreach($this -> column_to_form_action as $column_name)
  5. {
  6. if(array_key_exists($column_name, $this -> fields[0]))
  7. {
  8. if(!$this -> nice_url)
  9. $action .= $column_name . '=' . $this -> fields[0][$column_name] . '&';
  10.  
  11. else
  12. $action .= $this -> fields[0][$column_name] . $this -> params_separator;
  13. }
  14. }
  15.  
  16. return substr($action, 0, strlen($action) - 1);
  17. }

tak czy siak thx
thek
Lepiej zobacz jak tworzysz tablicę $action_params, bo to tam masz problem. Zobacz jakiego formatu wymaga http_build_query i porównaj z tym co nam wyprintowałes. To z leksza nie to co trzeba. Źle ją bowiem budujesz. Ma być w wyniku po przejściu pętli takie coś:
  1. $action_params = array( 'id' => 2, 'autor' => 'marcio' );

W pętli więc powinno być:
  1. $action_params[ $nazwa_kolumny ] = $wartosc_kolumny;

W Twoim kodzie to się przekłada więc chyba na
  1. $action_params[ $column_name ] = $this -> fields[0][$column_name];

Jeśli dobrze widzę...
marcio
tak dokladnie bez sprawdzania kodu moge stwierdzic ze masz racje ;p po calym dniu pracy,szkole i kodzenia nie bylem juz taki blyskotliwy manualowi sie przyladalem....i jak zawsze najglupszy problem okazal sie zabojczy hahahaha
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.