J'essaie de créer un formulaire avec HTML et javascript pour pouvoir récupérer 3 entrées différentes de l'utilisateur, les combiner en 1 formulaire au format json et enregistrer le fichier dans un emplacement de fichier local. Voici ce que j'ai actuellement. (Je ne sais pas comment je peux enregistrer une chaîne json dans un emplacement de fichier local. Merci pour votre temps à l'avance. (Je suis un novice javascript et html)

<header class="banner">
<h1 style="color:blue">HTML User Input to local file location</h1><main>
    <form id="myform" type="post">
        <fieldset>
            <legend style="color:blue">Sign Up</legend>
            <p style="color:red">Write your con-fig codes below</p>
            <div class="elements">
                <label for="Input1">Input1 :</label>
                <input required="required" type="text" onfocus="this.value=''" value="Input1" 
name="Input1" size="25" />
            </div>
            <div class="elements">
                <label for="Input2">Input2 :</label>
                <input required="required" type="text" onfocus="this.value=''" value="Input2" 
name="Input2" size="25" />
            </div>
            <div class="elements">
                <label for="Input3">Input3 :</label>
                <input required="required" type="text" onfocus="this.value=''" value="Input3" 
name="Input3" size="25" />
            </div
            <div class="submit">
                <input type="submit" id="btn" name="submit" class="btn" value="Send" />
            </div>
        </fieldset>
    </form>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#btn").click(function(e) {
                var jsonData = {};

                var formData = JSON.stringify($("#myForm").serializeArray());

                $.each(formData, function() {
                    if (jsonData[this.name]) {
                        if (!jsonData[this.name].push) {
                            jsonData[this.name] = [jsonData[this.name]];
                        }
                        jsonData[this.name].push(this.value || '');
                    } else {
                        jsonData[this.name] = this.value || '';
                    }

                });
                e.preventDefault();
            });
        });

    </script>
    </main>
0
Dave Seah 7 nov. 2019 à 04:26

1 réponse

Cela a certainement été demandé auparavant à plusieurs endroits. Comme Ici et Ici . Code copié à partir de l'un des liens ci-dessous

function download(content, fileName, contentType) {
    var a = document.createElement("a");
    var file = new Blob([content], {type: contentType});
    a.href = URL.createObjectURL(file);
    a.download = fileName;
    a.click();
}
download(jsonData, 'json.txt', 'text/plain');

Nous remercions @ Rafał Łużyński.

Veuillez mieux rechercher les solutions avant de poser une question.

0
binjamin 7 nov. 2019 à 01:44