2009-10-30 7 views
0

Je construis un peu une application JS de test, quelque chose de très basique, mais j'ai rencontré quelques problèmes.Transmettre des entrées de formulaire HTML dans un tableau Javascript pour les écrire dans un cookie côté client?

J'essaie d'utiliser un formulaire HTML pour qu'un utilisateur entre un nombre, qui est ensuite écrit dans un tableau Javascript. L'utilisateur a ensuite la possibilité d'écrire ce même tableau dans un cookie local (côté client). (Je comprends les implications de sécurité de ceci - c'est un cas de test et pas pour une utilisation commerciale.)

Cependant, je ne peux pas faire la connexion - comment puis-je capturer l'entrée HTML, appuyez sur «soumettre» qui enverra à un tableau JS, où l'utilisateur peut ensuite appuyer sur un «soumettre» différent qui va écrire le tableau dans un fichier texte?

Si quelqu'un peut aider, j'apprécierais parce que ça fait presque 6 heures et ce n'est plus drôle.

Répondre

0

sur le formulaire ajouter

<form bla bla bla onsubmit="return catchThings()"> 
     <input name="test" id="test"> 
    </form> 

le avec le javascript que vous pouvez faire

function catchThings(){ 
    // get all the forms inputs by id 
    // do things with arrays or whatever 
    var example = document.getElementById("test").value; 
    return false; 
} 
1

Pour lire les données, utilisez un code tel que celui-ci:

var data = new Array; 

function readData() { 
    var inputs = document.getElementsByTagName('input'); 
    for (i in inputs) { 
     if (!isNaN(i - 0) && inputs[i].type == 'text') { 
      data[i - 0] = inputs[i].value; 
     } 
    } 
} 

Trigger avec une entrée de bouton:

<input type="button" onclick="readData();" value="Read" /> 

Toujours, voulez-vous comme un cookie, un fichier texte ou quoi? Voici quelques déclarations possibles à l'utilisation selon ce que vous voulez:

alert(data.toString()); 
window.location.href = 'data:text/plain,' + escape(data.toString()); 
document.cookie = 'data=' + data.toString(); 

Le second génère le texte brut qui sera probablement affiché dans le navigateur. Pour l'enregistrer comme un fichier texte, vous devez soit

  • le faire manuellement après avoir généré il
  • utiliser un certain type MIME telles que l'application/octet-stream au lieu de texte/ordinaire (alors l'utilisateur avoir à nommer le fichier manuellement).
Questions connexes