| | |
open a form onclick radio button ?
Please support our PHP advertiser: PostgreSQL or MySQL? Compare and contrast the two most popular open source databases
![]() |
•
•
Join Date: Jan 2007
Posts: 17
Reputation:
Solved Threads: 0
for radio button
this will be the js file for the radio buttons
Enjoy...........
PHP Syntax (Toggle Plain Text)
<td><input type="radio" name="cardtype" value="s" rel="none" checked /> Single Side <input type="radio" name="cardtype" value="b" rel="card" /> Both Side</td>
this will be the js file for the radio buttons
PHP Syntax (Toggle Plain Text)
var containerTag = 'TR'; var compatible = ( document.getElementById && document.getElementsByTagName && document.createElement && !(navigator.userAgent.indexOf('MSIE 10') != -1 && navigator.userAgent.indexOf('Mac') != -1) ); if (compatible) { document.write('<style>.accessibility{display: none}</style>'); var waitingRoom = document.createElement('div'); } var hiddenFormFieldsPointers = new Object(); function prepareForm() { if (!compatible) return; var marker = document.createElement(containerTag); marker.style.display = 'none'; var x = document.getElementsByTagName('select'); for (var i=0;i<x.length;i++) addEvent(x[i],'change',showHideFields) var x = document.getElementsByTagName(containerTag); var hiddenFields = new Array; for (var i=0;i<x.length;i++) { if (x[i].getAttribute('rel')) { var y = getAllFormFields(x[i]); x[i].nestedRels = new Array(); for (var j=0;j<y.length;j++) { var rel = y[j].getAttribute('rel'); if (!rel || rel == 'none') continue; x[i].nestedRels.push(rel); } if (!x[i].nestedRels.length) x[i].nestedRels = null; hiddenFields.push(x[i]); } } while (hiddenFields.length) { var rel = hiddenFields[0].getAttribute('rel'); if (!hiddenFormFieldsPointers[rel]) hiddenFormFieldsPointers[rel] = new Array(); var relIndex = hiddenFormFieldsPointers[rel].length; hiddenFormFieldsPointers[rel][relIndex] = hiddenFields[0]; var newMarker = marker.cloneNode(true); newMarker.id = rel + relIndex; hiddenFields[0].parentNode.replaceChild(newMarker,hiddenFields[0]); waitingRoom.appendChild(hiddenFields.shift()); } setDefaults(); addEvent(document,'click',showHideFields); } function setDefaults() { var y = document.getElementsByTagName('input'); for (var i=0;i<y.length;i++) { if (y[i].checked && y[i].getAttribute('rel')) intoMainForm(y[i].getAttribute('rel')) } var z = document.getElementsByTagName('select'); for (var i=0;i<z.length;i++) { if (z[i].options[z[i].selectedIndex].getAttribute('rel')) intoMainForm(z[i].options[z[i].selectedIndex].getAttribute('rel')) } } function showHideFields(e) { if (!e) var e = window.event; var tg = e.target || e.srcElement; var fieldsToBeInserted = tg.getAttribute('rel'); if (tg.type == 'radio') { removeOthers(tg.form[tg.name],fieldsToBeInserted) intoMainForm(fieldsToBeInserted); } else if (tg.type == 'select-one') { fieldsToBeInserted = tg.options[tg.selectedIndex].getAttribute('rel'); removeOthers(tg.options,fieldsToBeInserted); intoMainForm(fieldsToBeInserted); } } function removeOthers(others,fieldsToBeInserted) { for (var i=0;i<others.length;i++) { var show = others[i].getAttribute('rel'); if (show == fieldsToBeInserted) continue; intoWaitingRoom(show); } } function intoWaitingRoom(relation) { if (relation == 'none') return; var Elements = hiddenFormFieldsPointers[relation]; for (var i=0;i<Elements.length;i++) { waitingRoom.appendChild(Elements[i]); if (Elements[i].nestedRels) for (var j=0;j<Elements[i].nestedRels.length;j++) intoWaitingRoom(Elements[i].nestedRels[j]); } } function intoMainForm(relation) { if (relation == 'none') return; var Elements = hiddenFormFieldsPointers[relation]; for (var i=0;i<Elements.length;i++) { var insertPoint = document.getElementById(relation+i); insertPoint.parentNode.insertBefore(Elements[i],insertPoint); if (Elements[i].nestedRels) { var fields = getAllFormFields(Elements[i]); for (var j=0;j<fields.length;j++) { if (!fields[j].getAttribute('rel')) continue; if (fields[j].checked || fields[j].selected) intoMainForm(fields[j].getAttribute('rel')); } } } } function getAllFormFields(node) { var allFormFields = new Array; var x = node.getElementsByTagName('input'); for (var i=0;i<x.length;i++) allFormFields.push(x[i]); var y = node.getElementsByTagName('option'); for (var i=0;i<y.length;i++) allFormFields.push(y[i]); return allFormFields; } /** ULTRA-SIMPLE EVENT ADDING **/ function addEvent(obj,type,fn) { if (obj.addEventListener) obj.addEventListener(type,fn,false); else if (obj.attachEvent) obj.attachEvent("on"+type,fn); } addEvent(window,"load",prepareForm); /** PUSH AND SHIFT FOR IE5 **/ function Array_push() { var A_p = 0 for (A_p = 0; A_p < arguments.length; A_p++) { this[this.length] = arguments[A_p] } return this.length } if (typeof Array.prototype.push == "undefined") { Array.prototype.push = Array_push } function Array_shift() { var A_s = 0 var response = this[0] for (A_s =0; A_s < this.length-1; A_s++) { this[A_s] = this[A_s +1] } this.length-- return response } if (typeof Array.prototype.shift == "undefined") { Array.prototype.shift = Array_shift }
Enjoy...........
That's a lot of code! What about having hidden sections and displaying them/hiding them with the onlick event? It's not as slick or as professional as the last post, but it's a lot quicker.
The documents are 'loaded' before the page is displayed. Only one file will be displayed at a time. Notice the first file is shown by default and the first radio button is checked.
The documents are 'loaded' before the page is displayed. Only one file will be displayed at a time. Notice the first file is shown by default and the first radio button is checked.
PHP Syntax (Toggle Plain Text)
(...) <input id="first" name="first" onclick="document.getElementById('firstfile').style.display='block'; document.getElementById('secondfile').style.display='none';return false;" checked="checked" /> <input id="second" name="second" onclick="document.getElementById('secondfile').style.display='block'; document.getElementById('firstfile').style.display='none';return false;" /> (...) <div id="firstfile" style="display:block;"> <?php include('includes/myfirstfile.php"); ?> </div> <div id="secondfile" style="display:none;"> <?php include('includes/mysecondfile.php"); ?> </div>
Happy Humbugging Christmas
![]() |
Similar Threads
- insert csv file into mysql through php (PHP)
- multiple radiobutton values ajax problem (JavaScript / DHTML / AJAX)
- Firefox Compatibility help with script (JavaScript / DHTML / AJAX)
- checkbox output (PHP)
- Radio Button and List (JSP)
- Cold fusion do not support input param: Help (ColdFusion)
- why won't my print button work (JavaScript / DHTML / AJAX)
- Radio button value in asp (ASP)
- Help - surf sidekick 3 is attacking! (Viruses, Spyware and other Nasties)
- vBulletin mod_rewrite for vB 3.0.7 (Existing Scripts)
Other Threads in the PHP Forum
- Previous Thread: edit data in the existing field
- Next Thread: problems with mktime function
| Thread Tools | Search this Thread |
Tag cloud for PHP
.htaccess access ajax apache api archive array beginner binary broken cakephp checkbox class clients cms code cron curl database date directory display download dynamic echo email error errors file files folder form forms function functions google href htaccess html if...loop image include insert integration ip java javascript joomla limit link login loop mail menu mlm mod_rewrite multiple mysql oop parse paypal pdf php phpincludeissue problem query radio random recursion recursive regex remote script search server sessions shot smarty sms soap source space speed sql structure syntax system table tutorial update upload url validation validator variable vbulletin video web xml youtube






