Visualizzazione risultati 1 fino 7 di 7

Discussione: Javascript e PHP

  1. #1
    Guest

    Red face Javascript e PHP

    Salve a tutti. Ho un problema molto "strano". Io ho una textarea che invia i dati a /dati/index.php dopo aver premuto il tasto Invio della tastiera. Solo che, il messaggio della textarea non me lo invia al seguente indirizzo /dati/index.php?commento=<?php echo $comm; ?> Come mai? Ecco il codice


    Codice HTML:
    <form id="formComment1" action="/dati/index.php?commento=<?php echo $comm; ?>" method="post">
    
    			<textarea id="testo" name="testo">Testo da inviare</textarea>
    
    		</form>
    
            <?php
    
            $comm = addslashes($_POST['testo']);
    
            ?>
    
           
    
            		<script type="text/javascript">
    
    
    
    			window.onload = function()
    
    			{
    
    				document.getElementById('testo').addEventListener("keypress", function(evento) { controlla(evento); }, false);	//se viene premuto un tasto nella textarea, richiamo controlla() passando l'evento
    
    			}
    
    
    
    			function controlla(evento)
    
    			{
    
    				if(evento.keyCode == 13)
    
    					document.getElementById('formComment1').submit();
    
    			}
    
    		</script>

    Nella pagina /dati/index.php ho questo codice per prendere il commento inviato:

    Codice PHP:
    <?php
    $comm
    = ($_GET['commento']);
    ?>
    Ma il commento della textarea non viene inviato. Come mai? Un ultima cosa. Vorrei che quando premo il tasto shift+invio, il testo nella textarea salta un rigo. Avete presente una normale textarea che se premete invio va nel rigo dopo? Ecco. Io se premo invio vorrei che mi andasse nell indirizzo sopra citato, se premo shift+invio vorrei che saltasse un rigo. Come faccio? Gazie mille a tutti :)

  2. #2
    Guest

    Predefinito

    Su Altervista la root di un sito non č / ma /membri/nomeutente/ (nel tuo caso /membri/jubik/)
    Quindi non sarą /dati/index.php ma /membri/jubic/dati/membri.php

  3. #3
    Guest

    Predefinito

    @AlterGuru, lo script che ho postato va perfettamente nella pagina /dati/index.php

  4. #4
    L'avatar di saitfainder
    saitfainder non č connesso Sėniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da jubik Visualizza messaggio
    Ma il commento della textarea non viene inviato. Come mai?
    I dati inviati via post vanno recuperati dalla variabile $_POST e non dalla $_GET.


    «Č una mia peculiaritą distorcere la veritą e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    NLSweb non č connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    l'evento Shift-Enter lo puoi gestire con un AND nel tuo IF
    Codice:
    event.keyCode == 13 && event.shiftKey
    Quindi pui usare
    Codice:
    $("textarea").keydown(function(evento){
        if (evento.keyCode == 13 && !evento.shiftKey)
        {
            evento.preventDefault();
        }
    });

  6. #6
    Guest

    Predefinito

    Non sono molto esperto di javascript ahahha mi spieghi il tuo procedimento?

  7. #7
    NLSweb non č connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Nel codice che hai postato , usi JS con un Event Listener per controllare quando qualcuno preme un tasto nella text area e quindi esegui un funzione di controllo , nel caso il tasto premuto sia ENTER esegui il submit ; ora tu vuoi aggiungere due cose:
    1) che il tasto ENTER non inserisca una riga nuova
    2) che il tasto SHIF-ENTER inserisca una riga nuova

    Quindi per evitare che il tasto ENTER esegua l'inserimento di una riga bisogna disabilitare la sua funzione standart (preventDefault)

    e allo stesso tempo bisogna dire che la stessa azione (inserimento di riga) possa essere eseguita se venga premuto il stato SHIF insieme ad ENTER ; per identificare la combinazione dei due tasti devi usare un AND per "keyCode 13 & shiftKey".

    Quindi (io ho usato jQuery per mia comodita') ho chiamato l'elemento textarea $("textarea") e gli ho assegnato un evento quando si fosse premuto un tasto keydown function(evento) ;
    Quando l'evento accorre eseguo un IF in cui dico se viene premuto in tasto ENTER ma non il tasto SHIFT non eseguire l'azione predefinita.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •