Visualizzazione risultati 1 fino 16 di 16

Discussione: Richiesta di consigli e aiuto per la realizzazione di un form in html

  1. #1
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito Richiesta di consigli e aiuto per la realizzazione di un form in html

    Salve ragazzi.
    Dovrei inserire un semplice form in html all'interno di un post nel forum (dove posso inserire solo "semplice" html) ma ho delle difficoltà nel realizzarlo (non ho mai avuto molto a che fare con i form).
    Il codice dovrebbe essere simile a questo:
    Codice:
    <form action="http://www.facebook.com/profile.php" method="get" target="_blank">
      <input name="id" type="text" size="20" maxlength="20" />
      <input type="submit" value="Vai!" />
    </form>
    Mi serve per creare un campo di testo dove inserire l'id dell'utente e quindi aprire una nuova pagina con la pagina del profilo.
    Questo codice funziona su una pagina a se ma crea casini all'interno del post (esce un alert che ha a che fare con tutt'altra funzione.
    Sarebbe inoltre "meglio" permettere l'inserimento di soli numeri (sopratutto per evitare potenziali problemi di sicurezza).
    Detto ciò, sto provando ma non riesco a venirne fuori.
    Grazie anticipatamente per ogni eventuale consiglio, DarkWolf

    -
    Edit: stavo pensando che potrei provare ad inserirlo anche in javascript :)
    Ultima modifica di darkwolf : 07-02-2010 alle ore 23.40.59

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Per il controllo all'invio, potresti usare questa routine JavaScript:
    Codice:
    function checkForm ()
    {
       var idBox = document.profileForm.id;
    
       // eliminiamo gli spazi iniziali e finali dall'id...
       idBox.value = idBox.value.replace (/^\s+|\s+$/g, '');
    
       // restituisce true se il campo "fitrato" ha solo cifre decimali
       var result = idBox.value.search (/^\d+$/) >= 0;
       if (!result) alert ('ID inserito non valido');
       return result;
    }
    Questo funzionerà se aggiungi al tag del form un attributo name="profileForm" e un gestore dell'evento onsubmit="return checkForm()"

    Non riesco a capire quale sia l'altro tuo problema: cosa intendi con "crea casini all'interno del post"?

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

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

    Predefinito

    Sul tuo forum i post sono contenuti in un form. Annidandone un'altro evidentemente fa casino.


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


  4. #4
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    @dementialsite: Con crea casini intendo che mi spunta un alert di tutt'altra funzione, cioè è come se andasse in conflitto con altre funzioni del template stesso.
    -
    @saitfainder: oltre a mantenere il form in un altra pagina e integrarlo tramite un iframe non c'è altro modo?
    -
    @entrambi: grazie :)

    Edit:
    Per farla breve, mi servirebbe, a questo punto in solo javascript, un campo dove inserire un url del tipo:
    hxxp://urlapplicazione?action=unlock&user1=*******&question=xx
    e cliccando su un bottone (vai) mi apra una nuova pagina (_blank) con quest'url:
    hxxp://urlapplicazione/profile.php?id=*******
    Ultima modifica di darkwolf : 09-02-2010 alle ore 18.19.40

  5. #5
    Data registrazione
    05-07-2009
    Residenza
    Milano
    Messaggi
    29

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Sul tuo forum i post sono contenuti in un form. Annidandone un'altro evidentemente fa casino.
    E' probabile che il tuo problema sia proprio questo!
    Un modo semplice (ma non troppo elegante) di venirne fuori è inserire il tuo nuovo form all'interno di una iframe:

    - crei un nuovo file html che contiene nel body il tuo form
    - inserisci nel post del forum:
    Codice:
    <iframe src="..indirizzo dell'html..">Il tuo browser non supprta le iframe.. Aggiornalo!</iframe>
    (come avrai capito, il codice tra i marcatori iframe è quello che verrà visualizzato se il browser non supporta le iframe). Così dovrebbe funzionare!
    A questo punto non ti resta che giocare con gli attributi width e height x collocare bene il tuo form all'interno del post... puoi usare anche CSS (x far sparire i bordi, ad esempio)!!
    Ultima modifica di alessandrozappa : 11-02-2010 alle ore 12.28.43

  6. #6
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    @alessandrozappa: grazie ma hai letto bene i vari post?
    L'ultimo in particolare:
    Citazione Originalmente inviato da darkwolf Visualizza messaggio
    @saitfainder: oltre a mantenere il form in un altra pagina e integrarlo tramite un iframe non c'è altro modo?...
    Insomma, so come si crea un'iframe (ne ho qualcuni sul mio sito, esempio per il guestbook) ma è una soluzione "sporca" e preferirei evitarla.

  7. #7
    Data registrazione
    05-07-2009
    Residenza
    Milano
    Messaggi
    29

    Predefinito

    Hai ragione, capito male ultimo post.

    La tua soluzione è quella giusta!
    Codice:
    <a href="myphp.php?idutente=xx" target="_blank">visualizza profilo</a>
    Poi in myphp.php intercetti l'idutente con $_GET['idutente']
    e carichi in qualche modo i dati dell'utente... in pratica così facendo dovresti "cannibalizzare" il tuo framework: potresti fare ad esempio una chiamata ajax alla pagina che visualizza i profili o più facilmente è possibile che ti basti un redirect!

    Apri la pagina del profilo di un utente e guarda l'url: cosa ti da? se è facile ricostruirlo a partire dall'id sei a cavallo...
    Ultima modifica di alessandrozappa : 11-02-2010 alle ore 13.32.43

  8. #8
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Scusate ma ripropongo la situazione:
    Io ho un link del tipo:
    sito.xx/directory/file.php?action=test&utente1=1234567890&target=10
    e tale link, inserendolo in un campo di testo, cliccando poi su un pulsante, dovrebbe rimandarmi a:
    sito.xx/request.php?id=1234567890
    -
    Tutto ciò, per evitare di "infastidire" il resto della pagina, dovrebbe essere scritto interamente in javascript (non posso usare php attivo nel post) ma non conoscendo il javascript non riesco ad elaborare questa cosettina che di certo è una sciocchezza.
    -
    Cioè, in parole povere:
    Ultima modifica di darkwolf : 17-02-2010 alle ore 01.31.45

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

    Predefinito

    Se la situazione è questa allora non hai nemmeno bisogno del form. Semplicemente onclick del bottone ci metti una qualcosa tipo questo (ipotizzo un ID sul text input):
    Codice:
    window.location = "sito.xx/request.php?id="+((document.getElementById('myinputbox').value.match(/utente1=(\d+)/))[1]);


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


  10. #10
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Grazie saitfainder :)
    -
    Ho inserito questo:
    Codice HTML:
    <input id="faceurl" type="text" size="70" />
    <input type="button" value="Vai al Profilo" onclick="window.open('http://www.facebook.com/profile.php?id='+((document.getElementById('faceurl').value.match(/user1=(\d+)/))[1]));" />
    ma continua ad andare in conflitto con il template:
    darkwolf.altervista.org/news-board/friend-facts-amico-fatti-hack-come-sapere-chi-ha-risposto-non-avendo-punti/
    Non mi serve più di tanto ma mi faceva piacere risolvere per pura curiosità :/
    Ultima modifica di darkwolf : 17-02-2010 alle ore 16.43.39

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

    Predefinito

    Mettendo questa stringa mi sembra che funzioni

    Codice:
    sito.xx/directory/file.php?action=test&user1=1234567890&target=10
    No?


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


  12. #12
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Te lo giuro, mi sto confondendo
    Adesso, con questa, sembra che funzioni proprio come dovrebbe :)
    Codice HTML:
    <input id="faceurl" type="text" size="70" /> 
    <input type="button" value="Vai al Profilo" onclick="window.open('http://www.facebook.com/profile.php?id='+((document.getElementById('faceurl').value.match(/user1=(\d+)/))[1]));" />
    -
    Edit: ah, ok, ecco il perchè mi confondevo.
    Se clicco su invio esce l'alert ecc... se clicco sul pulsante invece è ok (proverò a disabilitare il tasto invio) :)
    Ultima modifica di darkwolf : 17-02-2010 alle ore 17.44.15

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

    Predefinito

    Certo, premendo invio sulla riga di testo fai partire il form.


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


  14. #14
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Certo, premendo invio sulla riga di testo fai partire il form.
    Hai qualche consiglio da darmi per aggirare il problema? :)
    Chessò, magari forzando ad ignorare l'invio oppure a mandare automaticamente la selezione sul pulsante (così facendo l'invio dovrebbe equivalere al click sul pulsante no?) :/

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

    Predefinito

    Ecco cosa mi è venuto in mente:

    Codice HTML:
    <html>
    <head>
    <script type="text/javascript">
    flag = true;
    
    function check() {
    	return flag;
    }
    </script>
    </head>
    <body>
    <form action="x.php" onsubmit="return check()">
    	<input type="text" onkeydown="flag=false" onkeyup="flag=true"/>
    	<input type="submit" />
    </form>
    </body>
    </html>
    Premento invio nel campo text il flag è falso e il form non viene inviato. Se invece si invia il form in qualsiasi altro modo flag è vero.


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


  16. #16
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Grazie saitfainder ma con il codice riportato mi mandava l'alert sia con l'invio che cliccando sul button (suppongo sempre a causa della confusione che si crea con il template) :/
    Attualmente ho risolto con questo (trovato by google):
    Codice HTML:
    <script type="text/javascript">
    <!-- //Disabilito il tasto Invio
    function disableEnterKey(e) {
    	var key;
    	if(window.event)
    		key = window.event.keyCode; //IE
    	else
    		key = e.which; //firefox
    	return (key != 13);
    }
    // -->
    </script>
    <script type="text/javascript">
    <!-- //Scrivo il tutto tramite javascript
    document.writeln('<input id="faceurl" type="text" style="width: 80%;" onkeypress="return disableEnterKey(event)" value="Inserire solo link validi (come da istruzioni nella guida)..." onfocus=\'this.value = "";\' onblur=\'if(this.value=="") this.value="Inserire solo link validi (come da istruzioni nella guida)...";\' />');
    document.writeln('<input type="button" value="Vai al Profilo" onclick=\'window.open("http://www.facebook.com/profile.php?id="+((document.getElementById("faceurl").value.match(/user1=(\\d+)/))[1]));\' />');
    // -->
    </script>
    <noscript>
    <input type="text" value="Per utilizzare questa funzione è necessario il JavaScript" disabled="disabled" style="width: 80%;" />
    <input type="button" value="Vai al Profilo" disabled="disabled" />
    </noscript>
    Testato con: IE8, Firefox; Opera; safari e chrome
    Ultima modifica di darkwolf : 18-02-2010 alle ore 04.05.22 Motivo: Ulteriori cambiamenti al codice :)

Regole di scrittura

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