0
votes

Valeur de mise à jour dans le fichier JSON externe à l'aide de jQuery

J'ai un fichier JSON externe et j'ai besoin de mettre à jour certaines valeurs par ID, J'utilise uniquement HTML et JQuery

1 - Fichier JSON externe P>

p>

 $("#btnUpdateJson").click(function(){
    var Id = $("#txtId").val();
    var startTime = $("#txtStartTime").val();
    var endTime = $("#txtEndTime").val();
    $.getJSON( "../Admin/Data/fileName.json", function( data ) {
       $.each(data, function(i, item){
          if (data[i].Id == Id){
             // What can i do to update
            // StartTime and EndTime ?
           // where Id in jsone file = Id from html
          }
       });
    });
});


5 commentaires

Quel script vous utiliserez?


JavaScript et HTML seulement


Ensuite, ce que vous essayez de faire n'est pas possible dans les JS côté client uniquement comme vous avez besoin de la logique côté serveur pour recevoir la demande et écrivez le fichier. Cependant Il est à noter que la mise à jour des données dans le système de fichiers sur un serveur public n'est pas une bonne idée pour un tas de raisons entières, notamment une évolutivité. Je vous suggère fortement que vous utilisez une base de données à la place.


Merci de rejouer. Mais je pense que le JavaScript peut accéder aux fichiers.


Vous pouvez mettre à jour les valeurs localement, mais il n'ya aucun moyen de sauvegarder ces valeurs sur le serveur. Cela va nécessiter une langue latérale du serveur.


3 Réponses :


0
votes

Si l'utilisateur sélectionne un fichier via , vous pouvez lire et traiter ce fichier à l'aide de l'API de fichier.

lire ou écrire des fichiers arbitraires n'est pas autorisé par conception. C'est une violation du bac à sable.

En d'autres termes, vous ne pouvez pas simplement essayer d'accéder à un fichier via HTML, vous pouvez voir les préoccupations de sécurité pouvant suivre cela. Donc, à moins que vous tirez à partir d'une API / serveur qui dispose de ces données, vous devez ajouter une option d'entrée, l'utilisateur sélectionnera le fichier, puis votre fonction peut fonctionner contre elle.

Voici la solution dans nœud xxx

sortie xxx


0 commentaires

0
votes

// server side example

const express=require('express');
const app = express();
const fs = require('fs');
const bodyParser=require('body-parser');

app.use(bodyParser.json());

app.put('your/end/point, (req, res)=>{
  let id = req.body.id;
  let startTime = req.body.startTime;
  let endTime = req.body.endTime;
  
   if(!id || !startTime || !endTime) 
   return res.status(400).send({ error:'id, startTime and endTime are required!' });
      
  
  fs.readFile(__dirname + '../Admin/Data/fileName.json,'utf-8',
          (err, data)=>{
          if(err) return res.send({error:err});

          let myTimesList = JSON.parse(data);
          let idFound = false;
          for (let i = 0; i < myTimesList.length; i++) {
              if (id == myTimesList[i].id){
                  let newTime ={id,
                                startTime,
                                endTime
                               }

                  myTimesList.splice(i, 1, newTime);
                  idFoud = true;
                  break;
              }
          }

          if(!idFound) {
              return res.send({ error:'invalid id!' });
          }

          fs.writeFile(__dirname +'../Admin/Data/fileName.json,'utf-8' ,
          JSON.stringify(myTimesList), 'utf-8',
              (err)=>{
                  if (err) return res.send({error:err});            

                  return res.send({message:'Your file has been updated'});
          });
      });

});


2 commentaires

Merci pour Replay ... Voulez-vous dire que je dois rechercher io à l'aide de JavaScript?


Avez-vous un exemple?



0
votes

Vos données deviennent dans l'élément et vous pouvez maintenant prendre des identités dans un fichier externe xxx


0 commentaires