davey_b_ Posted April 20, 2008 Share Posted April 20, 2008 Hey... Does any one know how I can change this list in to submit buttons or links. Its for changing currency from pounds, euros, dollars etc. Appreciate any help on this. <form name="frmCurrencyType" method="post"> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td> <select name="currency_type" onChange="Javascript:document.frmCurrencyType.submit();"> <option value="">--Select--</option> <?php $select_currency = "SELECT ncurrency_id,vcurrency_name FROM ".$tableprefix."currency_master WHERE vactive = 'Y'"; $result_currency = mysql_query($select_currency) or die(mysql_error()); while($currency_row = mysql_fetch_array($result_currency)) { if($_SESSION['SESS_currency_type'] == $currency_row['ncurrency_id']) { $currency_selected = "selected"; } else { $currency_selected = ""; } ?> <option value="<?php echo $currency_row['ncurrency_id']?>" <?php echo $currency_selected?>><?php echo $currency_row['vcurrency_name']?></option> <?php } ?> </select> </td> </tr> </table> </form> Quote Link to comment https://forums.phpfreaks.com/topic/101967-solved-select-list-to-submit-buttons-help/ Share on other sites More sharing options...
jonsjava Posted April 20, 2008 Share Posted April 20, 2008 it can be done, but we need to see the javascript. Quote Link to comment https://forums.phpfreaks.com/topic/101967-solved-select-list-to-submit-buttons-help/#findComment-521846 Share on other sites More sharing options...
davey_b_ Posted April 20, 2008 Author Share Posted April 20, 2008 here's the JS (I think) var Behaviour = { list : new Array, register : function(sheet){ Behaviour.list.push(sheet); }, start : function(){ Behaviour.addLoadEvent(function(){ Behaviour.apply(); }); }, apply : function(){ for (h=0;sheet=Behaviour.list[h];h++){ for (selector in sheet){ list = document.getElementsBySelector(selector); if (!list){ continue; } for (i=0;element=list[i];i++){ sheet[selector](element); } } } }, addLoadEvent : function(func){ var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } } Behaviour.start(); /* document.getElementsBySelector(selector) - returns an array of element objects from the current document matching the CSS selector. Selectors can contain element names, class names and ids and can be nested. For example: elements = document.getElementsBySelect('div#main p a.external') Will return an array of all 'a' elements with 'external' in their class attribute that are contained inside 'p' elements that are contained inside the 'div' element which has id="main" -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows -- Opera 7 fails */ function getAllChildren(e) { // Returns all children of element. Workaround required for IE5/Windows. Ugh. return e.all ? e.all : e.getElementsByTagName('*'); } document.getElementsBySelector = function(selector) { // Attempt to fail gracefully in lesser browsers if (!document.getElementsByTagName) { return new Array(); } // Split selector in to tokens var tokens = selector.split(' '); var currentContext = new Array(document); for (var i = 0; i < tokens.length; i++) { token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');; if (token.indexOf('#') > -1) { // Token is an ID selector var bits = token.split('#'); var tagName = bits[0]; var id = bits[1]; var element = document.getElementById(id); if (tagName && element.nodeName.toLowerCase() != tagName) { // tag with that ID not found, return false return new Array(); } // Set currentContext to contain just this element currentContext = new Array(element); continue; // Skip to next token } if (token.indexOf('.') > -1) { // Token contains a class selector var bits = token.split('.'); var tagName = bits[0]; var className = bits[1]; if (!tagName) { tagName = '*'; } // Get elements matching tag, filter them for class selector var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements; if (tagName == '*') { elements = getAllChildren(currentContext[h]); } else { elements = currentContext[h].getElementsByTagName(tagName); } for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = new Array; var currentContextIndex = 0; for (var k = 0; k < found.length; k++) { if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) { currentContext[currentContextIndex++] = found[k]; } } continue; // Skip to next token } // Code to deal with attribute selectors if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) { var tagName = RegExp.$1; var attrName = RegExp.$2; var attrOperator = RegExp.$3; var attrValue = RegExp.$4; if (!tagName) { tagName = '*'; } // Grab all of the tagName elements within current context var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements; if (tagName == '*') { elements = getAllChildren(currentContext[h]); } else { elements = currentContext[h].getElementsByTagName(tagName); } for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = new Array; var currentContextIndex = 0; var checkFunction; // This function will be used to filter the elements switch (attrOperator) { case '=': // Equality checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); }; break; case '~': // Match one of space seperated words checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); }; break; case '|': // Match start with value followed by optional hyphen checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); }; break; case '^': // Match starts with value checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); }; break; case '$': // Match ends with value - fails with "Warning" in Opera 7 checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); }; break; case '*': // Match ends with value checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); }; break; default : // Just test for existence of attribute checkFunction = function(e) { return e.getAttribute(attrName); }; } currentContext = new Array; var currentContextIndex = 0; for (var k = 0; k < found.length; k++) { if (checkFunction(found[k])) { currentContext[currentContextIndex++] = found[k]; } } // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue); continue; // Skip to next token } if (!currentContext[0]){ return; } // If we get here, token is JUST an element (not a class or ID selector) tagName = token; var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements = currentContext[h].getElementsByTagName(tagName); for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = found; } return currentContext; } /* That revolting regular expression explained /^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/ \---/ \---/\-------------/ \-------/ | | | | | | | The value | | ~,|,^,$,* or = | Attribute Tag */ Quote Link to comment https://forums.phpfreaks.com/topic/101967-solved-select-list-to-submit-buttons-help/#findComment-521873 Share on other sites More sharing options...
davey_b_ Posted April 21, 2008 Author Share Posted April 21, 2008 any help??? Quote Link to comment https://forums.phpfreaks.com/topic/101967-solved-select-list-to-submit-buttons-help/#findComment-522658 Share on other sites More sharing options...
davey_b_ Posted April 21, 2008 Author Share Posted April 21, 2008 Anyone have anything on this ??? Quote Link to comment https://forums.phpfreaks.com/topic/101967-solved-select-list-to-submit-buttons-help/#findComment-522851 Share on other sites More sharing options...
sasa Posted April 21, 2008 Share Posted April 21, 2008 <form name="frmCurrencyType" method="post"> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td> <?php $select_currency = "SELECT ncurrency_id,vcurrency_name FROM ".$tableprefix."currency_master WHERE vactive = 'Y'"; $result_currency = mysql_query($select_currency) or die(mysql_error()); while($currency_row = mysql_fetch_array($result_currency)){ if($_SESSION['SESS_currency_type'] == $currency_row['ncurrency_id']){ $currency_selected = ' style="background:olive;"'; }else{ $currency_selected = ""; } ?> <input type="submit" <?php echo $currency_selected?> name="<?php echo $currency_row['ncurrency_id']?>" value="<?php echo $currency_row['vcurrency_name']?>"/> <?php } ?> </td> </tr> </table> </form> in submit script incurency_id value is key of $_POST variable! Quote Link to comment https://forums.phpfreaks.com/topic/101967-solved-select-list-to-submit-buttons-help/#findComment-522886 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.