NYCPHP Meetup

NYPHP.org

[nycphp-talk] Ajax 101: what to return from a POST

Tim Lieberman tim_lists at o2group.com
Thu May 3 14:45:37 EDT 2007


If there are validation errors, send back a json-encoded false in the  
X-JSON header, and some error HTML to be injected into a DOM element  
in the body.

If there are no errors, send back a json-encoded true in the X-JSON  
header, and do whatever else you need in the responseText.

So your script does something like:

new Ajax.Request('/some/service/url',{ onSuccess : function 
(transport,json){
	if (json){
		//everything is great.
	}else{
		//ruh-roh
		$('ErrorTextDiv').update(transport.responseText);
	}
});

On May 3, 2007, at 12:31 PM, David Mintz wrote:

> Let's say you are displaying a form populated with data from a db  
> table for a user to edit, and you want to AJAXify(with Prototype).  
> Your backend script does the validation. Suppose they POST it and  
> validation fails, what do you do?
>
> I have experimented with converting a PHP array of error messages  
> (fieldName => errorMessage, etc) into JSON and sending that back,  
> then doing DOM scripting to stick the error messages into some  
> DIVs. Kind of a lot of work, but it's efficient in the sense that  
> you only send data that the front end needs.
>
> The other option is to redraw the whole form with the error  
> messages in the DIVs and send back that chunk of HTML. Less  
> efficient in that you are sending back a bunch of bytes that are  
> the same as what was there in the first place, but more efficient  
> in that you re-use more code, and do less client-side acrobatics,  
> than if you return a JSON data structure.
>
> Am I being a byte-Nazi? Any thoughts?
>
>
> -- 
> David Mintz
> http://davidmintz.org/
>
> Just a spoonful of sugar helps the medicine go down
> In the most delightful way.
> _______________________________________________
> New York PHP Community Talk Mailing List
> http://lists.nyphp.org/mailman/listinfo/talk
>
> NYPHPCon 2006 Presentations Online
> http://www.nyphpcon.com
>
> Show Your Participation in New York PHP
> http://www.nyphp.org/show_participation.php

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nyphp.org/pipermail/talk/attachments/20070503/c16abe23/attachment.html>


More information about the talk mailing list