Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Passare una stringa composta da numeri e virgole...

    Problema semplice che mi sta facendo ammattire...


    PERCHE' mi passa solo il primo valore se metto un carattere virgola o un punto o una lineetta come separatore?

    <form action="stessapagina.php" method="POST">
    INSERISCI GRUPPO NUMERICO CHE HAI SCELTO<input type="text" name="gruppo" size=60 />

    (Inserire il gruppo scelto intervallato dal carattere virgola... [es: 1,2,3])
    <input type="submit" value="Aggiorna" />
    </form>

    <?php

    $grupposcelto = (isset($_POST['gruppo']) && $_POST['gruppo'] != '') ? intval($_POST['gruppo']) : "1,2,3,4,5,6,7,8,9,10"; //la stringa numerica... è impostata se non passo valore.

    Se nel campo 'gruppo' immetto una serie di numeri intervallati da virgola allorchè clicco su aggiorna mi passa solo il primo valore...



    Come posso passarli tutti come stringa?

    Grazie


  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    E' ovvio che ti passi solo il primo numero, se usi intval($_POST['gruppo']) cos'altro dovrebbe restituirti?
    Come convertiresti in intero 2,4,6,8,9 se non 2?

    Edit: ho provato, così mi stampa la stringa che scrivo (ho provato 2,4,6,5,8)
    Codice PHP:
    <?php
    if(isset($_POST['gruppo'])) {
        echo 
    $_POST['gruppo'];
    }
    else{
    ?>
    <form action="prova.php" method="POST">
    INSERISCI GRUPPO NUMERICO CHE HAI SCELTO <input type="text" name="gruppo" size="60" />

    (Inserire il gruppo scelto intervallato dal carattere virgola... [es: 1,2,3])
    <input type="submit" value="Aggiorna" />
    </form>
    <?php ?>

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    grazie adesso funzia!



    Adesso avrei quest'ultimo quesito...

    $grupposcelto="1,2,3,4,5,7,8,9,10";
    $arraydecina3=explode(",", $grupposcelto);

    pensavo fosse equivalente... rispetto a scrivere:

    $arraydecina3=array(1,2,3,4,5,6,7,8,9,10);

    invece così non sembrerebbe...

    Il mio problema è che invece di avere un dato fisso.. del tipo:

    $arraydecina3=array(1,2,3,4,5,6,7,8,9,10);

    dovrie averne uno variabile... del tipo:

    $arraydecina3=array($dativariabili);


    come potrei fare?

    tnx


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509

    Re: grazie adesso funzia!

    Originariamente inviato da freetom
    Adesso avrei quest'ultimo quesito...

    $grupposcelto="1,2,3,4,5,7,8,9,10";
    $arraydecina3=explode(",", $grupposcelto);

    pensavo fosse equivalente... rispetto a scrivere:

    $arraydecina3=array(1,2,3,4,5,6,7,8,9,10);
    E infatti lo è, prova questo codice
    Codice PHP:
    <?php
        $sequenza 
    "1,2,3,4,5,6,7";
        
    $array explode(",",$sequenza);
        foreach(
    $array as $v) {
            echo 
    $v." ";
        }
        echo 
    "

    "
    ;
        
    $array2 = array(8,9,10,11,12,13,14);
        foreach(
    $array2 as $p) {
            echo 
    $p." ";
        }
    ?>
    Ti accorgerai che tutti e due i pezzi si comportano allo stesso modo.

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Continua a non passarmi i valori...

    O megliio a non avere lo stesso risultato rispetto a mettere un array fisso...

    Codice PHP:


    <form action="stessapagina.php" method="POST"> 
       INSERISCI INDICE (di partenza...) VOLUTO<input type="text" name="valore" />

       INSERISCI GRUPPO NUMERICO CHE HAI SCELTO<input type="text" name="gruppo" size=60 />
     
       (Inserire il gruppo scelto intervallato dal carattere virgola... [es: 1,2,3])   
       <input type="submit" value="Aggiorna" /> 
    </form>

    <?php

    $valore 
    = (isset($_POST['valore']) && $_POST['valore'] != '') ? intval($_POST['valore']) : 0//0 è impostato se non passo valore.
    //$grupposcelto = (isset($_POST['gruppo']) && $_POST['gruppo'] != '') ? intval($_POST['gruppo']) : "1_2_3_4_5_6_7_8_9_10"; //0 è impostato se non passo valore.

    if(isset($_POST['gruppo'])) { 
        echo 
    $_POST['gruppo']; 
        
    $grupposcelto=$_POST['gruppo'];
    }
    else 

        
    //echo $_POST['gruppo']; 
        
    $grupposcelto="1,2,3,4,5,6,7,8,9,10";
    }



     
    $dativariabili=explode(",",$grupposcelto);
     


    //se lascio così...

     
    $arraydecina3 $dativariabili;
     
    //non funzia...

    //se lascio tutto in modo statico cosi'...

    $arraydecina3=array(1,2,8,10,12,13,14,15,17,20,21,22,27,28,29,31,33,34,35,36,37,38,39,43,45,46,47,52,53,54,56,60,63,64,66,69,74,80,82,83,88);
     
    //funzia...

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Se non dici però qual è lo scopo finale è difficile darti una mano.
    Cosa vuol dire funziona/non funziona?
    Con la variabile $arraydecina3 cosa devi farci che con explode non fa?

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Lo scopo finale è avere il contenuto di $arraydecina3

    Originariamente inviato da Alhazred
    Se non dici però qual è lo scopo finale è difficile darti una mano.
    Cosa vuol dire funziona/non funziona?
    Con la variabile $arraydecina3 cosa devi farci che con explode non fa?
    in modo dinamico... senza doverlo necessariamente includere nel codice:

    Codice PHP:
    $arraydecina3=array(1,2,8,10,12,13,14); 
    al posto dei valori fissi... inseriti direttamente nel codice... 1,2,8,10,12,13,14
    correi metterci un'analoga variabile dinamica cui passare appunto da form i valori diversi di volta in volta...

    per avere ad es.

    Codice PHP:
    $arraydecina3=array($variabile); 
    dove $variabile viene caricata di volta in volta da form con valori diversi intervallati da virgola..

    Spero di essere stato un pò + chiaro.

    Grazie comunque


  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    form.html
    Codice PHP:
    <form name="numeri" method="post" action="elabora.php">
        
    Inserisci una serie di numeri separati da virgola

        
    <input type="text" name="serie" size="60">

        <
    input type="submit" value="invia">
    </
    form
    elabora.php
    Codice PHP:
    <?php
    $numeri 
    explode(",",$_POST['serie']);
    foreach(
    $numeri as $v) {
        echo 
    $v." ";
    }
    ?>
    Fanno ciò che ti serve?
    Qualsiasi stringa inserisci nel form, verà inviata e stampata dalla pagina elabora.php e la sequenza la decide ogni volta l'utente che scrive nel form.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Mi sa che ho capito cosa devi fare.
    Usa questo come elabora.php
    Codice PHP:
    <?php
    $numeri 
    explode(",",$_POST['serie']);
    $count count($numeri);

    echo 
    "I terni che si possono generare dai numeri: ";
    foreach(
    $numeri as $v) {
        echo 
    $v." ";
    }
    echo 
    "

    Sono:
    "
    ;
    for (
    $x 0$x $count$x++) {
        for (
    $y $x 1$y $count$y++) {
            for (
    $z $y 1$z $count$z++) {
                print(
    "{$numeri[$x]},{$numeri[$y]},{$numeri[$z]}"."
    "
    );
            }
        }
    }
    ?>

  10. #10
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    ANCORA GRAZIE!

    Originariamente inviato da Alhazred
    Mi sa che ho capito cosa devi fare.
    Usa questo come elabora.php
    Codice PHP:
    <?php
    $numeri 
    explode(",",$_POST['serie']);
    $count count($numeri);

    echo 
    "I terni che si possono generare dai numeri: ";
    foreach(
    $numeri as $v) {
        echo 
    $v." ";
    }
    echo 
    "

    Sono:
    "
    ;
    for (
    $x 0$x $count$x++) {
        for (
    $y $x 1$y $count$y++) {
            for (
    $z $y 1$z $count$z++) {
                print(
    "{$numeri[$x]},{$numeri[$y]},{$numeri[$z]}"."
    "
    );
            }
        }
    }

    ?>
    Per ringraziarti se vuoi buttare un eurino puoi provare 38.40 su CA x E/A un colpo solo.


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 © 2026 vBulletin Solutions, Inc. All rights reserved.