Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema con array

  1. #1

    Problema con array

    salve!
    io ho varie checkbox prese da db e poi una textbox:
    Codice PHP:
    <?php
                
    foreach ($objConn->getSomething('provenienze''fisso'1NULL'nome'NULL) as $var) {
                    
    $provCeck '';
                    if (
    $var['id'] == $clProv1 || $var['id'] == $clProv2 || $var['id'] == $clProv3) {
                        
    $provCeck 'checked="checked"';
                    }
                    echo 
    '<input type="checkbox" name="prov[]" value="' $var['id'] . '" ' $provCeck ' /> ' $var['nome'];
                }
                
    ?>
    <input type="checkbox" name="prov" id="prov" onclick="txtEnable('prov', 'prov_txt');" value="" /> Altro/Other 
                <input type="text" id="prov_txt" name="prov_text" value="" disabled />
    è possibile ceccare le checkbox o anche passare i dati tramite textbox.
    nel secondo caso cioò che viene scritto nella textbox deve essere passato come valore in array.
    Codice PHP:
      $cprovArray $_POST['prov'];
                if (
    $cprovArray[0] == NULL) {
                    
    $cprovArray[0] = 0;
                }
                if (
    $cprovArray[1] == NULL) {
                    
    $cprovArray[1] = 0;
                }
                if (
    $cprovArray[2] == NULL) {
                    
    $cprovArray[2] = 0;
                }
                if (
    count($cprovArray) < && !empty($_POST['prov_text'])) {
                    
    array_push($cprovArray$_POST['prov_text']);
                }
                for (
    $i 0$i count($cprovArray); $i++) {
                    echo 
    'PREF ' $i ': ' $cprovArray[$i] . '
    '
    ;
                } 
    il problema è che nn funziona molto bene.
    se se uso solo check box i rislutati sono giusti:
    codice:
    PREF 0: 1
    PREF 1: 2
    PREF 2: 0
    se invece cecco ad esempio due checkbox e scrivo qualcosa nella textbox:
    codice:
    PREF 0: 0
    PREF 1: 0
    PREF 2: 0
    tutti i valori sono a zero.
    ma nn riesco veramente a capire il perchè.

  2. #2
    Se dai lo stesso nome a checkbox e textbox ...
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    E' perchè hai dato all'attributo name del tag html per il caso "altro" valore prov e non prov[]. In più dovresti verificare che almeno una ceck box sia spuntata con una isset() su $_POST['prov']. Non capisco tutti quegli if in cui fai ==NULL. una check box non spuntata non è settata con null... non è settata affatto. In generale, queste poche righe se anche funzionassero, sono pessime e da riscrivere. Senza considerare che quello che cerchi di fare andrebbe fatto con un tag <select> o dei radio button.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  4. #4
    se do lo stesso nome a checkbox e textbox come faccio a capire se la textbox nn è vuota?

    per quanto riguarda la seconda risposta.
    se metto anche alla checkbox "altro" il nome prov[] mi viene restituito zero.
    codice:
    PREF 0: 2
    PREF 1: 3
    PREF 2: 0
    tutti quegli if ci sono solo perchè sto cercando di capire bene come funziona.
    nn sono "vitali".
    infine nn capisco perchè mail le checkbox nn vadano bene.
    a me sembrano adatte per le multiscelte.

  5. #5
    up!

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da pontius298
    up!
    Questa non l'ho capita, fermat crea il thread e l'up lo fa pontius298?

    Multiaccount?

  7. #7
    Originariamente inviato da Alhazred
    Questa non l'ho capita, fermat crea il thread e l'up lo fa pontius298?

    Multiaccount?
    Avevo pensato la stessa cosa, ma se controlli il post di pontius298 vedrai che contiene uno pseudo link ad un'immagine (mi puzza di spam)
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    no no ragazzi nn scherziamo.
    ho un solo account.
    perchè lui abbia fatto un up nn lo so proprio.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Tranquillo, come ha detto satifal potrebbe essere solo spam.
    Avevo notato anch'io il tag img, ma non sono stato lì a guardarlo ed ho pensato non fosse apparsa un'immagine solo per un errore nello scrivere il link.

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.