Edit in Place. Not exactly something that is cutting edge these days. But, I wanted to overcome the central theme that all of the other Edit in Place articles I have read share: the Javascript is not dynamic; it does not handle inputs based on Class. I wanted an edit place that allowed for an unlimited number of editable divs, without more Javascript for each one.
I didn't want to modify someone else's 400 lines of code to do this. So I wrote this short little 30 line script— a relatively trivial task thanks to my new love Prototype (Kudos to Rick for introducing me).
Obviously the page that you would potentially use something like this for will be a tad more robust, but bear with me for the examples.
The HTML is very basic — just some divs with a class named inputs.
You will notice that each section starts with a div ID eip_number and is followed by a div with the ID of status_eip_number. These ID’s are what our Javascript will use to know which section of the two divs is which.
So, the Javascript will take care of the rest as long as 1)the two div's are paired together, 2)the status div begins with the word “status” (this is what the Javascript uses to work with infinite divs), and 3) the status div is followed with the above div's ID.
The Javascript is rather basic if you are familiar with Prototype, and I have also mildly commented the code packaged with this article.
Event.observe(window, 'load', function(){Here is what happens on the window load:
inputs.eip_editor_current-div eip_editor_ div.eip_editor_ div's <textarea> eip_edit_, assigns it to the original div eip_number, and shows it.That's it. View the finished example.
Of course, you will probably want to add your own PHP scripts to this to save your data to a database for further use. This script just updates the current page and all edits are lost on refresh.