How to edit a piece of text inline without having to use a submit button
Example page: inline edit (no JS knowledge needed) [source ] | Inline example: Please edit me!
how you can make it work (5 easy steps for integration)
- Download this Javascript file: InstantEdit 2.0 JS
- Create a update file that handles the input. For example this PHP: Update File
- In your page add the javascript: <script type=”text/javascript” src=”instantedit.js”></script>
- Set fixed vars (like hidden elements in a field post). These will be posted with the editable field so you can identify a user/session.
<script type=”text/javascript”> setVarsForm(”pageID=profileEdit&userID=11″); </script> - Last step: in your HTML for any editable field add a SPAN arround it:
<span id=”userName” class=”editText”>John Doe</span>
Note: id is the fieldname (?userName=John Doe&), and should be unique!
how it works
A small piece of javascript reads al SPAN tags, checks if it has class=“editText” and a id=. If that is true, it adds a onclick function. That onclick function will create a textfield or input (depending on the size of the editable text). Someone has the ability to edit the field. When the text field is blurred, it will read the contents, and starts a XMLHttpRequest and ‘sends’ the content + fieldname + any set vars to an update file. That file will update your database, and reply with the newly set text and the textfield will dissapear again.
IE? FF?
This script works in internet explorer, netscape and firefox. Any other platforms haven’t been tested. That’s kinda up to you.
Update: HACKS
If you want to force a textarea over a textfield (for example to edit a piece of HTML) use class=“editText” offsetHeight=“10”.
If you want to PUSH an ID to your script I use: id=“edit_userID_$userID”. In your update script, strip the text, and keep the $userID. Et voila.
Source: http://www.yvoschaap.com/index.php/weblog/ajax_inline_instant_update_text_20/

Add A Comment