Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di kafkahc
    Registrato dal
    Mar 2002
    Messaggi
    113

    Array con testo e funzione

    Ciao a tutti,
    ho un altro problemino con un array...

    Ho fatto questa funzione che, una volta passata un stringa contenente un insieme di parole separate da virgola, dovrebbe restituirmi dei link con il parametro "keywords" pari ai valori degli array.


    function keywordslink($keywords)
    {
    $array = explode(",", $keywords);
    foreach($array as $valore){
    $elencolink.="<a href=articolo_categoria.php?Keywords=".$valore.">" .$valore." </a>";

    }
    return $elencolink;
    }


    La funzione funziona, ma in maniera incompleta. Mi restituisce i testi dei link in maniera corretta, ma come parametro di keywords mi prende solo la prima parola... (nel senso che se ho 4 diverse keywords, coe testo del link le vedo tutte e 4, ma come parametro mi funziona solo la prima).

    Oltretutto se una keywords é costituita da due parole (ed esempio "Stati Uniti"), come testo del link mi prende Stati Uniti, ma come parametro Stati...

    Sapreste indicarmi come risolvere?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150

    Re: Array con testo e funzione

    Originariamente inviato da kafkahc
    Ciao a tutti,
    ho un altro problemino con un array...

    Ho fatto questa funzione che, una volta passata un stringa contenente un insieme di parole separate da virgola, dovrebbe restituirmi dei link con il parametro "keywords" pari ai valori degli array.


    function keywordslink($keywords)
    {
    $array = explode(",", $keywords);
    foreach($array as $valore){
    $elencolink.="<a href=articolo_categoria.php?Keywords=".$valore.">" .$valore." </a>";

    }
    return $elencolink;
    }


    La funzione funziona, ma in maniera incompleta. Mi restituisce i testi dei link in maniera corretta, ma come parametro di keywords mi prende solo la prima parola... (nel senso che se ho 4 diverse keywords, coe testo del link le vedo tutte e 4, ma come parametro mi funziona solo la prima).

    Oltretutto se una keywords é costituita da due parole (ed esempio "Stati Uniti"), come testo del link mi prende Stati Uniti, ma come parametro Stati...

    Sapreste indicarmi come risolvere?

    Grazie
    Ciao,

    prova a riscrivere la riga segnata di rosso in questa maniera:

    $elencolink.="<a href=\"articolo_categoria.php?Keywords=".$valore." \">".$valore." </a>";

    In questo modo dovrebbe funzionare.

  3. #3
    Intanto quando devi postare del codice php usa il tag apposito

    Poi non ho capito qual'è il tuo problema, la funzione fa quel che chiedi, se tu la chiamo ad esempio così
    Codice PHP:
    echo keywordslink("uno,due,tre,quattro"); 
    Ti dovrebbe restituire
    codice:
    due
    quattro
    Certo manca qualche doppio apice a livello di html, il risultato che ti aspetti quale sarebbe invece?

  4. #4
    Utente di HTML.it L'avatar di kafkahc
    Registrato dal
    Mar 2002
    Messaggi
    113

    grazie

    Grazie ad entrambi

    per sotoli, ho modificato come mi hai suggerito e funziona... non capisco bene quale sarebbe il senso delle /, però funziona...


    per cubalibre810
    scusa per il codice, cercherò di stare più attento...
    l fatto é che la funzione come l'avevo scritta io (e nella situazione in cui ero) mi restituiva

    Codice PHP:
    [url="articolo_categoria.php?Keywords=uno>uno</a>
    <a"
    ]due[/url]
    [
    url="articolo_categoria.php?Keywords=>tre</a>
    <a"
    ]quattro[/url
    Probabilmente questo era dovuto al fatto che nella stringa di testo vi era uno spazio dopo la virgola (infatti funzionava la prima chiave)...
    Con le modifiche di sotoli però funzionava lo stesso, anche con lo spazio.
    Adesso comunque aggiungo uno str_replace per togliere lo spazio prima dell'array.

    Grazie ancora a tutti e due

  5. #5
    Utente di HTML.it L'avatar di kafkahc
    Registrato dal
    Mar 2002
    Messaggi
    113
    un'aggiunta,
    se metto lo str_replace parole come Stati Uniti mi diventano StatiUniti...


    Codice PHP:
    function keywordslink($keywords)

      
    $keywords str_replace ' '''$keywords);
      
    $array explode(","$keywords); 
      foreach(
    $array as $valore){
      
    $elencolink.="<a href=articolo_categoria.php?Keywords=".$valore.">".$valore."</a> ";
    }
     
      return 
    $elencolink

    Quindi devo usare per forza il codice di sotoli... e cioé




    Codice PHP:
    function keywordslink($keywords)

      
    $array explode(","$keywords); 
      foreach(
    $array as $valore){
      
    $elencolink.="<a href=\"articolo_categoria.php?Keywords=".$valore."\">".$valore."</a> ";
    }
     
      return 
    $elencolink


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.