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

    Problema con form con moltre righe

    salve!
    ho un form con dentro diverse righe di cui fare l'update (circa 400).
    nel form le righe sono create dinamicamente, e i campi da passare a db li ho messi così (in un ciclo foreach):
    Codice PHP:
    <input type="text" name="list_pr[]" value="<?php echo $var['pr']; ?>">
    <input type="hidden" name="list_id[]" value="<?php echo $var['id']; ?>">
    i campi sono valorizzati correttamente.
    però quando invio il form, vedo che mi vengono presi sempre e solo i primi 100:
    Codice PHP:
    $prezzo $_POST['list_pr'];
    $articolo $_POST['list_id'];
    var_dump($articolo); 
    avete idea del perchè?

  2. #2
    Ho fatto un prova e funziona correttamente. Vedo tutti e 400 i valori.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    infatti anche io non ho mai avuto problemi.
    evidentemente c'è qualcosa che non va con il mio codice, che in verità è fatto con CodeIgniter.
    vi avevo messo un esempio semplificato pensando di aver sbagliato in generale.

    vi metto esattamente quello che ho fatto:
    Codice PHP:
    <?php echo form_open($loggedStrumenti '/dochangeprice'); ?>
        <?php foreach ($listini as $l): ?>
            <div class="row show-grid">
                <div class="span2">
                    <?php echo $l->art_codice?>
                </div>
                <div class="span2">
                    <?php echo $l->listr_prezzo?>
                </div>
                <div class="span2">
                    <input type="text" name="list_pr[]" value="<?php echo $l->listr_prezzo_mod?>" class="input-mini">
                    <input type="hidden" name="list_id[]" value="<?php echo $l->art_codice?>">
                </div>
            </div>

        <?php endforeach; ?>
        <input type="submit" value="Invia / Send" name="submit" class="btn">
        <?php echo form_close(); ?>
    questo il form.
    questo quello che viene richiamato:
    Codice PHP:
        public function doChangePrice() {
            
    $prezzo $this->input->post('list_pr');
            
    $articolo $this->input->post('list_id');
            for (
    $i 0$i count($articolo); $i++) {
                echo 
    $articolo[$i] . ' - ' $prezzo[$i] . '
    '
    ;
            }
        } 
    molto banale direi.

    eppure mi prende sempre e solo i primo 100!

  4. #4
    lebando un attimo Codeigniter, ho fatto questa prova banale:
    Codice PHP:
    <?php
    if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['btn_send'])) {
        echo 
    'CIAO';
    }
    ?>
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
        <div class="row show-grid">
            <div class="span2">
                ARTICOLO
            </div>
            <div class="span2">
                PRICE
            </div>
            <div class="span2">
                MOD PRICE
            </div>
        </div>

        <?php foreach ($objAdminConn->getPrezziArticoli('.......''........') as $l): ?>
            <div class="row show-grid">
                <div class="span2">
                    <?php echo $l['art_codice']; ?>
                </div>
                <div class="span2">
                    <?php echo $l['listr_prezzo']; ?>
                </div>
                <div class="span2">
    <!--                <input type="text" name="list_pr[]" value="<?php echo $l['listr_prezzo_mod']; ?>" class="input-mini">
                    <input type="hidden" name="list_id[]" value="<?php echo $l['art_codice']; ?>">-->
                </div>
            </div>

        <?php endforeach; ?>
        <input type="submit" value="Invia / Send" name="btn_send" class="btn">
    </form>
    come vedete ho commentato quelle due righe.
    così facendo quando invio il form mi esce CIAO, se invece quelle righe non sono commentate non esce nulla.
    evidentemente sbaglio qualcosa la in mezzo!!

  5. #5
    niente, ho scoperto il motivo.
    prende solo fino a 100 record.
    se sono di più non manda l'output in post.
    c'è qualcosa che posso modificare nella configurazione??

  6. #6
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Credo dovrai agire sul numero massimo di variabili accettabili, nel php.ini

    ; How many GET/POST/COOKIE input variables may be accepted
    ; max_input_vars = 1000

    E' un'opzione attiva dalla versione 5.3.9
    De-commentala (togliendo il punto e virgola a inizio riga) e cambia il valore
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  7. #7
    uhm, su questo server ho la versione 5.2.5.
    e infatti non trovo nulla al riguardo.

    però mi pare di capire che se installato si può agire su suhosin:
    codice:
    suhosin.post.max_array_depth 
    
    suhosin.post.max_array_index_length 
    
    suhosin.post.max_name_length 
    
    suhosin.post.max_totalname_length 
    
    suhosin.post.max_vars 
    
    suhosin.post.max_value_length

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.