Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    onchange, passare valore a php + refresh.si puo?

    ciao a tutti,
    non son per nulla pratico di javascript ma da quel che ho letto per tutti i forum penso sia una cosa fattibile.

    ho una tabella in php composta da diverse righe, ogni riga ha testo semplice(stampa di variabile) e da input text il cui value è popolato sempre da variabili di php.

    tutte le variabili di php in realtà sono sessioni multidimensionali le i cui nomi vengono recuperati da un ciclo.

    es:
    Codice PHP:
    for ($n="1";$n<"50";$n++)
    {
    $n_spada="n_art".$n;
    if(isset(
    $_SESSION[$n_spada]))
        {echo 
    "
    <td align=\"center\" valign=\"middle\" >
    <input name=\"lunga\" type=\"text\" size=\"3\" value=\""
    .$_SESSION[$n_spada]['lunga']."\" onchange=\"this.form.submit()\">
    </td>"
    ;

    ho tagliato una parte di script lasciando quello che mi serviva.
    il mio problema è levento "onsubmit"
    attualmente faccio eseguire un submit...ma quello lo voglio utilizzare per inserire tutto nel db quando sono certo che tutti i valori che imposto mi vanno bene. prima di allora vorrei eseguire refresh di pagine inserendo tutto in sessioni.

    unico problema (non da poco per me) è prelevare il valore nuovo dell'input in particolare e associarlo ad una variabile di sessione appropiata.
    si puo realizzare o devo cambiare tipo di struttura?
    so che php è lato server mentre javascript è lato client ma dovrebbero interfacciarsi in qualche modo o no?
    o devo per forza fare tramite submit? in quel caso come faccio a passarmi il valore?

    se potete consigliarmi in qualche modo o indicarmi dove trovare informazioni vi ringrazio

    ciao

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    per ottenere un' interazione con un linguaggio lato server senza ricaricare il documento ti serve ajax (o simili)
    studia la guida ad ajax di javascript.html.it
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    mh buttare giu qualcosa semza prima aver quantomeno letto/capito non mi pare il caso. ripiego con un submite l'invio dei dati lo eseguo con un pulsante e carico la pagina in questione con un onclick...non molto bello ma più che sufficiente per quel che devo fare io.
    grazie lo stesso

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    un chiarimento.
    onchange="this.form.submit()" dovrebbe farmi il submit del form se modifico il campo a cui la funzione è associata?

    <form type"post" .....
    <input type=text name=prova onchange="this.form.submit()" >
    </form>

    con php faccio un controllo del tipo isset($_POST['invia'])
    non funziona se modifico il campo
    se invece premo il tasto invia si
    dove sbaglio?

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da nexus
    un chiarimento.
    onchange="this.form.submit()" dovrebbe farmi il submit del form se modifico il campo a cui la funzione è associata?
    si'
    se poi con php faccio un controllo del tipo isset($_POST['invia']) non funziona se modifico il campo e se invece se cambio il campo no?
    ???

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    in pratica il submit lo faccio fare nella stessa pagina del form.
    a inizio pagina in php volevo mettere un controllo se è stato fatto il submit o meno e nel caso fare un include di un altro script.

    solo che non funziona con l'evento submit() ma solo se premo il tasto submit alla fine del form.
    non è come premere il tasto? devo assegnarli un nome in qualche modo alla funzione javascript?

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    un submit() non richiama le istruzioni contenute nell' onsubmit

    richiama onchange una funzione che contenga quanto devi fare all' onsubmit e infine effettua il submit()

    se non riesci posta quello che hai nell' onsubmit

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    ah ecco....non ho nulla nell'onsubmit....sapevo che mi mancava un pezzo....
    Codice PHP:
    <form name="sub_weap" method="post" action="armamento.php">
    <?php 
    for ($n="1";$n<"50";$n++)
    {
    $n_wea_in_equipe="n_art".$n;
    if(isset(
    $_SESSION['weapon'][$n_wea_in_equipe]))
        {
                 echo 
    "<tr>
                   <td align=\"center\" ></td>
                    <td align=\"center\" ><input type=\"button\" name=\"del\" value=\"X\" ></td>
                    <td align=\"center\" valign=\"middle\"><h1><a href=\"#\" class=\"schede\" onClick=\"MM_openBrWindow('scheda_weap.php','','scrollbars=yes,width=500,height=650')\">"
    .$_SESSION['weapon][$n_wea_in_equipe]['cod']."</a></h1></td>
                    <td align=\"center\"><h1><a href=\"#\" class=\"schede\" onClick=\"MM_openBrWindow('
    scheda_weap.php','','scrollbars=yes,width=500,height=650')\">".$_SESSION['weapon][$n_wea_in_equipe]['descrizione']."</a></h1></td>
                    <td align=\"center\"><h1>"
    .$_SESSION['weapon][$n_wea_in_equipe]['peso']."&euro;</h1></td>
                    <td align=\"center\" valign=\"middle\" ><input name=\"indossa\" type=\"text\" size=\"3\" value=\"".$_SESSION['
    weapon][$n_wea_in_equipe]['indossa']."\" onchange=\"this.form.submit()\"></td>
    <tr>"
    ;
    }
    }
    <
    input type="submit" name="sub_weap" value="salva" style="margin-right:20px;width:100px">
    direi che mi manca quella parte dell'onsubmit...
    in pratica aggiornando il valore nel campo text delle armi indossate dovrebbe fare il submit.
    con php controllare se il submit è stato eseguito e fare l'include di un file.

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non ci siamo capiti, ho immaginato fosse quello il motivo perche' e' cosa frequente vista la domanda che hai posto

    io questo campo con name="invia" non lo vedo
    e se non lo setti via javascript non c'e' motivo per cui non funzioni inviando il form via onchange e funzioni inviando via submit

    poi, per chiarezza, quando ci sono linguaggi lato server di mezzo posta l' html risultante,
    serve ad identificare piu' velocemente i problemi anche per chi non e' avvezzo a quel particolare linguaggio

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    il campo con nome="invia" l'ho modificato in
    <input type="submit" name="sub_weap" value="salva" style="margin-right:20px;width:100px">
    provo a postare il codice html risultante o almeno una parte perchè è troppo lungo
    Codice PHP:
    <html>
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <
    title>Documento senza titolo</title>

    <
    link href="css/bk.css" rel="stylesheet" type="text/css">
    <
    script type="text/JavaScript">
    <!--
    function 
    MM_openBrWindow(theURL,winName,features) { //v2.0
      
    window.open(theURL,winName,features);
    }
    //-->
    </script>
    </head>
    <body>
    //.....
    <form name="sub_weap" method="post" action="armamento.php"> 
    <table>
    <tr>
    <td align="center" ></td>
    <td align="center" ><input type="button" name="del" value="X" ></td>
    <td align="center" valign="middle"><h1>
    [url="#"][COLOR=blue]qewq[/COLOR][/url]</h1>
    </td>
    <td align="center"><h1>
    [url="#"][COLOR=blue]primo[/COLOR] [/url]</h1>
    </td>
    <td align="center"><h1>1.5 kg</h1></td>
    <td align="center" valign="middle" >
    [COLOR=red]<input name="indossa" type="text" size="3" value="" onchange="this.form.submit()">[/COLOR] 
    </td>
    <td align="center" valign="middle" ><h1>2 Gold</h1></td>
    </tr>
    //....
    <tr>
    <td height="30" bgcolor="#F7f7f7"></td>
    <td height="30" align="right" bgcolor="#F7f7f7">
    <input type="submit" name="sub_weap" value="salva" style="margin-right:20px;width:100px">
    </td>
    </tr>
    </table>
    </form> 
    questo è l'html risultante. ho messo in rosso l'unico input che c'è. ho tagliato parte della pagina perchè ci sono diverse righe.
    quello che volevo fare io è:
    se il valore della riga rossa cambia volevo inviare il form ricaricando la stessa pagina e quindi metto una condizione php, recupera i dati e salvali.a grandi linee

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