Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    153

    javascript dentro ciclo php

    Io ho un piccolo problema di questo tipo.... ho un form inserito in un ciclo php in cui è presente un text input del tipo:

    <input type="text" value="0" />

    vorrei inserire nel tag precedente un javascript che mi controllasse il valore inserito nel campo value in modo che gli utenti possano solo inserire numeri, niente testo o caratteri speciali e il numero massimo che possono inserire è dato da una variabile e cambia costantemente all'interno del ciclo. Qualcuno potrebbe aiutarmi?

  2. #2
    non vedendo come è strutturato il ciclo non riesco a fornirti una possibile soluzione, ma posso dirti che:
    prendi il tuo <input type="text" value="0">, gli dai un id,
    <input type="text" value="0" id="Campo1">
    e poi per controllare se è stato inserito un numero fai:
    var controllo=/^[\d]+$/;
    controllo.test(document.getElementById('Campo1').v alue)
    questo controlla se il valore è un numero, per il numero massimo, non ho capito se è un numero massimo di cifre o un valore massimo, cmq:
    - numero max di cifre: var controllo=/^[\d]{1,N_MAX}$/;
    - valore massimo: parseInt(document.getElementById('Campo1').value)< VALORE_MAX

    questi sono i controlli per controllare che sia un numero e che non superi il numero massimo...poi devi vedere come sistemarle...magari fatti una funzione richiamata al submit del form, o al onBlur del campo input..

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    153
    Allora mi spiego meglio... il tag all'interno del form è questo:

    echo "<div><input type=\"text\" name=\"$ida\" id=\"$ida\" maxlength=\"2\" size=\"4\" value=\"0\" /></p></div>";

    poco prima di questo tag, sempre all'interno del ciclo ho una piccola funzione che mi calcola il valore della variabile $max che indica il numero massimo (non di cifre, ma proprio numero) che può ussere inserito nel campo di testo. Diciamo che questa variabile $max può assumere come valore 5 oppure 10.
    Io dovrei mettere un javascript che mi controlli che nel campo $ida (anche il nome del campo è una variabile che assume, volta per volta, valori differenti) non venga mai inserito un numero superiore a quello contenuto nella variabile $max.

    Per fare ciò immagino che devo inserire il controllo direttamente nell'input all'interno del ciclo dal momento che il valore massimo non è fisso ma varia a seconda del variare dei dati all'interno del ciclo. Spero di essere stato più chiaro... hai qualche idea?

  4. #4
    ok..ora mi è più chiaro..
    una soluzione è fare una funzione javascript che puoi mettere nell'head:
    <script>
    function verifica(obj,massimo){
    var controllo=/^[\d]+$/;
    value=obj.value;
    if(controllo.test(value)){alert('Attenzione! Valore non numerico'); obj.focus();}
    if(parseInt(value)>massimo){alert('Attenzione! Valore troppo grande'); obj.focus();}
    }
    </script>
    e poi nel ciclo form diventa:

    echo "<div><input type=\"text\" name=\"$ida\" id=\"$ida\" maxlength=\"2\" size=\"4\" value=\"0\" onChange=\"verifica(this,".$max.")\" /></p></div>"

    In questo modo il controllo viene fatto quando varia il valore dell'input, quindi se l'utente lascia 0, non succede nulla.

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.