Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]czysty php - problem z pętlą foreach w smartach, pokazuje pierwszy znak
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Panowie przejdę do rzeczy, otóż w czystych phpie mam kod który dziala:

  1. foreach (array($value['tablica']) as $row){
  2. echo $row['imie'] . ' - ' . $row['nazwisko'] . '<br>';
  3. }


natomiast już w smarcie pokazuje tylko pierwszy znak - wydaje mi się, że smarty odbiera to jako string a nie array i nie wiem jak zmusić w smartach by pokazywało całość:


  1. {foreach ...... }
  2. {foreach from=$var.tablica item="value"}
  3. {$value.imie}
  4. <br>
  5. {/foreach}
  6. {/foreach}


ktoś pomoże ?

Ten post edytował casperii 20.11.2019, 10:38:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
casperii
post
Post #2





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


@Tomplus to ja wiem co to jest foreach - i nawet tak miałem - tyko , że po przekazaniu do smarty (TPL) - chwyta mi to jako string i lecąc foreachem pokazuje mi pierwszą literkę.

Dobra zacznijmy od początku bym miał pewność , że dobrze rozumiem / robię to:

PHP:
  1. <?php
  2.  
  3. $tablica = array();
  4. while($row = $sql->fetch(PDO::FETCH_ASSOC)){
  5. $nrAuto = $row['nrAuto'];
  6.  
  7. if (!isset($tablica[$nrAuto]))
  8. $tablica[$nrAuto] = array(
  9. 'name' => $row['name'],
  10. 'nrAuto' => $row['nrAuto'],
  11. 'model' => array()
  12. );
  13.  
  14. if (!empty($row['auto']))
  15. $tablica[$auto]['model'][] = array(
  16. 'desc' => $row['desc'],
  17. 'kolor' => array(
  18. 'newId' => $row['newid'],
  19. 'descTwo' => $row['descTwo']
  20. )
  21. );
  22. }
  23.  
  24.  
  25.  
  26. foreach ($tablica as $idCat => $val){
  27. echo '<strong>' . $val['nrAuto'] . ' - ' . $val['name'] . ' - ' . $val['model'] . '</strong>';
  28. foreach ($val['model'] as $value){
  29. echo $value['desc'] . ' - ' . $value['kolor'] . '<br>';
  30.  
  31. foreach (array($value['model']) as $row3){
  32. echo $row3['newId'] . ' - ' . $row3['descTwo'] . '<br>';
  33. }
  34. }
  35. echo '<br><br>';
  36. $link[] = $val;
  37. }
  38. }
  39. ?>


Uzyskujemy tablice:
O ile w (powtórzę ponownie) czystym phpie działa tak przerzuceniu do tpl - nie działa jak trzeba.
Zdaje sobie sprawę , że smarty ostatnią petlę widzi jako string a nie array - tylko czy w smartach istnieje konwersja stringa do array ?


  1. foreach ([b]array([/b]$value['model'][b])[/b] as $row3){
  2. echo $row3['newId'] . ' - ' . $row3['descTwo'] . '<br>';
  3. }



Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 04:15