Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Utilizzo variabili

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    9

    Utilizzo variabili

    Salve a tutti...
    Ho un problema con l'utilizzo delle variabili.
    Se nel file .js ho una variabile globale, per esempio una stringa, come faccio per poterla stampare sul documento html?
    Ho provato di tutto, dalla costruzione di una funzione in javascript al document.write, ma nn riesco. Di sicuro è una stupidata, ma leggendo gli articoli non sono riuscito a fare.
    Grazie dell'attenzione.
    Un saluto a tutti.

  2. #2
    Uhm...strano. Se hai una variabile globale, dovresti poterla stampare tranquillamente con document.write(variabile). Sei sicuro che sia una variabile globale nel file JS? Hai controllato di aver scritto il suo nome esattamente (le variabili sono case sensitive)? Al limite posta il codice del file JS...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    9
    Questo è il codice...
    Vi prego neppure il mio prof riesce a spiegarselo:
    HTML:
    <form action="ricerca.html" method="get" name="ricerca" target="_blank" onSubmit="controlla()">
    <label>Ricerca nel sito</label>
    <input name="stringa" type="text"/>
    <input type="submit" value="Cerca"/>
    </form>

    JAVASCRIPT:
    // Variabile con la stringa ricercata
    var s="";

    // Funzione per il controllo di inserimento di almeno un termine
    function controlla(){
    if (ricerca.stringa.value <= 0){
    alert("Inserisci almeno un termine");
    return false;
    }
    else{
    s = ricerca.stringa.value;
    return true;
    }
    }
    // Funzione per la stampa della stringa ricercata
    function ret_str(){
    document.write(s);
    return true;
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    9
    E la stampa dovrebbe avvenire tramite questo:



    Hai cercato:</p>



    <script language="javascript">
    ret_str();
    </script>
    </p>

  5. #5
    Non penso ti serva una funzione per la stampa...ti basta un document.write() nel punto della pagina. Quindi la funzione ret_str() è inutile. Prova a stampare direttamente la stringa. Altra cosa...usa sempre document prima del nome dei form, altrimenti alcuni browser segnalano un errore.

    codice:
    if (document.ricerca.stringa.value <= 0) {
    Meglio ancora sarebbe non passare nemmeno per l'oggetto form e utilizzare il DOM standard per accedere agli elementi del form. Per fare questo, devi dare un attributo id ad ogni campo del form e quindi puoi accedere ad esso con:

    document.getElementById("ID_CAMPO")

    anziché con:

    document.NOMEFORM.NOMECAMPO

    Infine, c'è un errore proprio nel controllo che ti ho indicato precedentemente. Non ha senso scrivere un if come quello, perché la proprietà value del campo di testo contiene la stringa che in quel momento è presente nel campo stesso. Se vuoi controllare la lunghezza della stringa presente nel campo di testo, devi usare la proprietà length in questo modo:

    codice:
    if (document.ricerca.stringa.value.length <= 0) {
    La proprietà length, applicata al value del campo di testo, restituisce la lunghezza (in caratteri) della stringa.

  6. #6
    ehm....presumo che tu voglia passare la variabile s dalla pagina col form alla pagina ricerca.html...questo non è possibile,almeno non nella maniera semplice che ti aspetteresti. Che le pagine html linkino lo stesso file .js non vuol dire che passando da una pagina all'altra i valori delle variabili vengano mantenuti,non è quello il significato di variabile globale.
    Puoi passare una stringa da una pagina all'altra usando un cookie oppure attraverso la barra degli indirizzi (nella query string).


    Se invece vuoi mettere tutto il codice nella stessa pagina, devi fare in modo che cliccando sul tasto "cerca" non si passi alla pagina ricerca.html. Questo puoi farlo semplicemente, basta che la funzione controlla() restituisca sempre false. Ma ci sono comunque altri errori sparsi:
    -il form deve ,invece dell'attributo name, deve avere l'attributo id.
    -ricerca.stringa.value magari funzionerà pure con quella porcheria di IE, ma non è certo il modo corretto e non funzionerà con browser seri. Usa invece ad esempio document.getElementById('ricerca').elements('strin ga').value per prendere la stringa inserita nel campo text.[EDIT]Per fare questo devi dare un id anche agli elementi input,oltre che all'elemento form[/EDIT]
    -il controllo ricerca.stringa.value <= 0 non ha molto senso, è come fare "cercami" <= 0 (restituirà sempre false, comunque). Probabilmente vuoi controllare se l'utente ha scritto qualcosa nel campo, allora devi fare document.getElementById('ricerca').elements('strin ga').value.length == 0 , cioè controlli se la _lunghezza_ della stringa è uguale a 0.
    - ret_str() viene eseguita subito,senza aspettare che l'utente clicchi sul tasto Cerca, quindi siccome hai inizializzato s="", stamperà una stringa vuota,nel caso i due codici siano nella stessa pagina, o darà errore di variabile non definita e inizializzata nel caso i due codici si trovino in pagine diverse.

  7. #7
    ops, mentre scrivevo ha risposto anche seed_squall_it, non avevo visto e ho raddoppiato alcune note...

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    9
    Ho capito all'incirca, sl ke nn riesco a metterlo per iscritto.
    Nn riesco a capire cm usare i vari id sul form, e gli input...
    In poche parole devo fare un ricerca all'interno del sito ke stiamo costruendo.
    Non sono presenti delle funzioni già fatte o per lo meno impostate? Così da evitare questa parte e dedicarmi ad altre?
    Grazie per gli aiuti.

  9. #9
    Allora,se vuoi essere al passo coi tempi(cioè prepararti a usare correttamente xhtml), tanto per cominciare:
    -all'interno del tag form non ci deve essere name, ci vuole solo l'id.
    -gli input vari necessitano sia del name (è l'unico modo di base per passare dati al server), sia dell'id(indispensabile per javascript standard e css). Il name esiste ancora per questioni di compatibilità, ma in futuro verrà eliminato del tutto.
    -tutti gli attributi in xhtml vanno scritti in minuscolo, quindi anche onSubmit diventa onsubmit.
    Quindi il form va bene, devi solo fare le modifiche che ti ho scritto.

    Se ho capito bene tu vuoi ottenere due pagine distinte, una con un semplice form che chiama la seconda pagina(probabilmente in php o asp),la quale cerca la stringa (dove ti pare a te) e restituisce i risultati sulla pagina.In questa seconda pagina tu vuoi far uscire anche la stringa cercata nella pagina precedente,e vorresti fare questo in javascript, ma la cosa non è ottenibile in maniera immediata. Ti consiglio di farlo in php(sempre che sia questo il tuo linguaggio server-side):al posto di :
    Codice PHP:


    Hai cercato
    :</p>



    <
    script language="javascript">
    ret_str();
    </script>
    </p> 
    mettici questo:
    Codice PHP:


    Hai cercato:</p>



    <?=$_GET['stringa']?>
    </p>

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    9
    SCusa, ma ho fatto solamnete xhtml per tutte le pagine e basta. Php nn lo conosco e nn so se è possibile utilizzarlo per il nostro sito. se ti può chiarire tutto meglio metto le pagine intere, perchè con php nn so nemmeno da dove iniziare...
    Grazie dell'aiuto.

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.