2011-07-25 4 views
1

J'utilise PHP/jQuery/MySQL pour construire un petit site web pour mon ami. Comme une application CRUD typique, il aura des formulaires et des rapports. J'ai un framework PHP en place pour rendre les formulaires et les sauvegarder en utilisant Ajax. Maintenant, je dois mettre à jour les éléments sur la page Web lorsqu'un élément de données est enregistré. Comme il s'agit d'un petit projet, je serais allé avec une approche simple d'envoyer du HTML dans la réponse Ajax et l'intégration de la réponse dans la page Web. Mais j'ai décidé d'utiliser JSON pour pouvoir étendre le framework à d'autres projets. À partir de maintenant est mon idée de conception:Besoin de suggestion pour créer une petite structure JSON pour une application web pilotée par Ajax

{ 
    'status':'', /*status like success/fail */ 
    'message':'', /*a status message or sting will be more helpful in case of failure */ 
    'data':'', /*arbitrary data*/ 
    'datatype':'' /*is it JSON or HTML or javascript(or some thing else?)*/ 
} 

Basé sur la réponse jQuery mettra à jour/gérer les éléments de la page Web. Est-ce que je manque quelque chose ici ou suis-je totalement faux dans cette conception.

Répondre

2

Je n'aurais pas de statut là-bas et je chercherais plutôt à utiliser les codes d'état HTTP pour reporter l'état. En PHP, vous pouvez utiliser header() pour renvoyer un 400 si vous obtenez et émettre. Si vous retournez alors 200 si tout est OK.

Puis, en jQuery vous pouvez faire:

$.getJSON('http://someUrl/action.php').success(function() { 
    alert('success'); 
}).error(function() { 
    alert('fail'); 
}); 

Pour vous structurez JSON je puis continuer tout ce que vous avez.

{ 
    'message': '', /*a status message or sting will be more helpful in case of failure */ 
    'datatype': '', /*is it JSON or HTML or javascript(or some thing else?)*/ 
    'data': {} /*arbitrary data*/ 
} 

J'espère que cela aide.

+0

Le champ d'intention du statut est plus pour les opérations côté serveur telles que l'interaction db etc. Par exemple, une opération peut échouer et je devrais en informer l'utilisateur. – Kumar

+0

Si vous avez toujours besoin d'un message, même si le statut n'est pas correct, alors gardez votre design original. Ma suggestion de codes d'état HTTP était due à ce qui est parfois utilisé dans REST et aussi pour permettre l'utilisation de .success et .error dans jQuery. – hpoom

+0

Je ne suis pas un ninja jQuery mais je sais qu'il fournit un moyen de regarder les en-têtes et d'agir en conséquence, donc je suppose que je peux intercepter les en-têtes 404/500 et agir en conséquence, je fais quelque chose de similaire pour gérer les appels ajax non autorisés – Kumar

Questions connexes