Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    problema strano con script e foreach

    salve a tutti.
    Ho modificato uno script che prima andava benissimo ma lo dovuto modificare perchè prima effettuava troppe chiamate al database vi posto il code:

    Codice PHP:
    <?php function prova(){
    $arrmast=explode("|",$mast);
        
    foreach(
    $arrmast as $key => $val){
    $tag="<div id=\"$valori[0]\" style=\"display:none;\">";
    ...
    $tag.="</div>"?>

    <script type="text/javascript">
    window.parent.listmast('<?php echo $valori[1]; ?>', '<?php echo $tag?>');
    </script>

    <?php }
    }

    prova(); ?>
    la cosa strane che nel documento mi ripete <script>...</script> per tutte le linee che contiene gli array e non la $tag.
    Spero di essere stato abbastanza chiaro.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Tu chiudi il php e lo riapri nel ciclo quindi è ovvio che te lo stampa

    Inoltre noto diversi errori sintattici, potresti postarlo meglio o per intero?

  3. #3
    come chiudo e lo riapro non capisco.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da techno
    come chiudo e lo riapro non capisco.
    Forse non ho capito io il problema, tu hai chiesto come mai si ripete tutte le volte beh perché è stampato nel ciclo, se non stampa $tag forse dipende da qualche errore prima ad esempio
    Codice PHP:
    $tag="<div id=\"$valori[0]\" style=\"display:none;\">"
    ...  
    //qui..
    $tag."</div>"
    Qui come manipoli $tag?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    159
    Ti conviene fare qualcosa tipo questa:
    Codice PHP:
    <?php function prova(){ 
    $arrmast=explode("|",$mast); 
    echo 
    '<script type="text/javascript">'
    foreach(
    $arrmast as $key => $val){ 
    $tag.="<div id=\"$valori[0]\" style=\"display:none;\">"
    ... 
    $tag.="</div>"?> 


    window.parent.listmast('<?php echo $valori[1]; ?>', '<?php echo $tag?>'); 

    <?php 
    echo 
    '</script>'

    prova(); ?>
    EDIT:
    Aggiungi .= a $tag altrimenti non la popoli correttamente la variabile

  6. #6
    ok freenetw proverò così e farò sapere

    dove sono i puntini continua la concatenazione di $tab

    se metto alert nella funzione javascript nella finestra di dialogo mi compare esatto è nel documento che mi stampa stì cavoli di tag <script>

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    159
    Originariamente inviato da techno
    ok freenetw proverò così e farò sapere

    dove sono i puntini continua la concatenazione di $tab

    se metto alert nella funzione javascript nella finestra di dialogo mi compare esatto è nel documento che mi stampa stì cavoli di tag <script>
    E questo succede perché si trovano nel ciclo.

  8. #8
    niente da fare ho fatto come dice freenetw

    Codice PHP:
    <?php function prova(){  
    $arrmast=explode("|",$mast);  
    echo 
    '<script type="text/javascript">';  
    foreach(
    $arrmast as $key => $val){  
    $tag.="<div id=\"$valori[0]\" style=\"display:none;\">";  
    ...  
    $tag.="</div>"?>  


    window.parent.listmast('<?php echo $valori[1]; ?>', '<?php echo $tag?>');  

    <?php }  
    echo 
    '</script>';  
    }  
    prova(); ?>
    ma mi ripete nella pagina window.parent.listmast(...) per tutte le volte del ciclo foreach.

    eppure nel vecchio script c'era un ciclo while e funzionava tutto bene non capisco perche dentro il foreach fa questo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.