JavaScript - Google Sheets Scripting
Issue 1 - Solved
I have this workbook with multiple sheet. I need that the data from the mail sheet gets sorted to the other sheets based on the value in certain cells. https://docs.google.com/a/housing.co...it?usp=sharing IQT 3.0 is the main sheet The condition to copy the data is simple based on data if available in column I to N then the data in that full row should get copied to the sheets with the same name as these columns. multiple entries is possible if you look at the test data Row 2 has data available in 3 columns i,K&L now all the relavent data should get copied to the sheets with the same name as these columns & the data should go under the appropriate columns in these sheets. Issue 2 - Pending Need Help Each error sheet is worked upon by different teams is there a way to ensure that the status of the project in the main sheet cannot be made live till all errors for that particular project have the YES selected under Resolved & Passed by QC. If the Resolved & Passed by QC. are YES for each error in a particular project only then can the status in the main sheet be changed to LIVE & highlighted in green else it should show the status as PENDING only no colour. Once the Status is live then the project should be moved to the archive sheet & also removed from the error sheets so that the only projects visible are the ones pending to be resolved & sorted by process date. also need to ensure that no one except the sheet owner can delete the code or the sheet. Similar TutorialsCan someone please tell me why my script doesn't work the way its supposed to? In google sheets If any cell in a row turns red then the firsts cell in that row turns red. its supposed to do the same with yellow and orange. with red always taking priority, so if theres a red cell in the the same row with a yellow or orange it will override the firsts cell with a red background. The yellow and orange codes don't seem to work at all. function MakeRed(){ var book = SpreadsheetApp.getActiveSpreadsheet(); var sheet = book.getActiveSheet(); var first_column = "B"; var first_row = 1; var last_row = sheet.getLastRow(); var last_column = sheet.getLastColumn(); var active_row = 1; var range_input = sheet.getRange(1,1,last_row,last_column); var range_output = sheet.getRange("A1"); var cell_colors = range_input.getBackgroundColors(); var color = "#ff0000"; for(var r = 0; r < cell_colors.length; r++) { var rowWoColA = cell_colors[r].slice(1); if(rowWoColA.indexOf(color)>-1) { cell_colors[r][0]=color; } else { cell_colors[r][0]="#ffffff"; } } range_input.setBackgroundColors(cell_colors);// update sheet colors } function ColorOfCol(){ var book = SpreadsheetApp.getActiveSpreadsheet(); var sheet = book.getActiveSheet(); var range_input = sheet.getDataRange(); var cell_colors = range_input.getBackgrounds(); if (cell_colors.length == 0) throw new Error( 'No data in sheet' ); // List of colors in priority order, default at end. var color = ["#ff0000","#ff9900","#ffff00","#ffffff"]; for (var r = 0; r < cell_colors.length; r++) { // check for all colors EXCEPT our default, the last in color[] for (var b=0; b<color.length-1; b++) { // -1 means not found, but 0 means found in first column, which we don't care about if (cell_colors[r].indexOf(color[b])>0) { // found this color, stop searching, with 'b' == found color break; } } // 'b' will contain the color index. If none found, it will be the last color, our default. cell_colors[r][0]=color[b]; } range_input.setBackgrounds(cell_colors);// update sheet colors } Can anyone tell me how I can combine multiple sheets into one?
We've been attempting to set up a drop-down selection box with hidden tables under it for use on a company website. The site has a lot of CSS sheets (like 20 of them) and more could be added at any point so we'd like to write the code to cycle through each one of them to find the correct variable associated with the selections in the drop-down. The code below works fine in dreamweaver, even with the multiple sheets attached, but stops working immediately when putting it in a browser. Any thoughts/suggestions are greatly appreciated. Code: <style type="text/css"> .al {display:none} .ca {display:none} .ct {display:none} .ga {display:none} .il {display:none} .la {display:none} .ma {display:none} .mi {display:none} .mn {display:none} .mo {display:none} .ms {display:none} .nc {display:none} .ne {display:none} .nh {display:none} .nv {display:none} .ny {display:none} .or {display:none} .sc {display:none} .tn {display:none} .tx {display:none} .va {display:none} .vt {display:none} .wa {display:none} .wi {display:none} </style> <script type="text/javascript"> function showHide(cls, show) { for (var i=0; i<document.styleSheets.length; i++) { // browser-compatibility var rule = document.styleSheets[i].rules ? document.styleSheets[i].rules : document.styleSheets[i].cssRules; for (var j = 0; j < rule.length; j++) { if (rule[j].selectorText == "." + cls) { //find css selector rule[j].style.display = (show) ? 'block' : 'none'; } } } } function selAction(sel) { for (var i = 0; i < sel.options.length; i++) { showHide(sel.options[i].value, i == sel.selectedIndex); } } </script> </head> <body> <table> <tr> <td colspan="3"> <select name="type" onchange="selAction(this);"> <strong><option value="et"> Please Select Your State: </option> <option value="al">Alabama</option> <option value="ca">California</option> <option value="ct">Connecticut</option> <option value="ga">Georgia</option> <option value="il">Illinois</option> <option value="la">Louisiana</option> <option value="ma">Massachusetts</option> <option value="mi">Michigan</option> <option value="mn">Minnesota</option> <option value="mo">Missouri</option> <option value="ms">Mississippi</option> <option value="nc">North Carolina</option> <option value="ne">Nebraska</option> <option value="nh">New Hampshire</option> <option value="nv">Nevada</option> <option value="ny">New York</option> <option value="or">Oregon</option> <option value="sc">South Carolina</option> <option value="tn">Tennessee</option> <option value="tx">Texas</option> <option value="va">Virginia</option> <option value="vt">Vermont</option> <option value="wa">Washington</option> <option value="wi">Wisconsin</option></strong> </select> </td> </tr> <tr class="al"> <td> No issues in your state at this time.</td> </tr> <tr class="ca"> <td> No issues in your state at this time. </td> </tr> <tr class="ct"> <td> No issues in your state at this time. </td> </tr> <tr class="ga"> <td> No issues in your state at this time. </td> </tr> <tr class="il"> <td> No issues in your state at this time. </td> </tr> <tr class="la"> <td> No issues in your state at this time. </td> </tr> <tr class="ma"> <td> No issues in your state at this time. </td> </tr> <tr class="mi"> <td> No issues in your state at this time. </td> </tr> <tr class="mn"> <td> No issues in your state at this time. </td> </tr> <tr class="mo"> <td> No issues in your state at this time. </td> </tr> <tr class="ms"> <td> No issues in your state at this time. </td> </tr> <tr class="nc"> <td> No issues in your state at this time. </td> </tr> <tr class="ne"> <td> No issues in your state at this time. </td> </tr> <tr class="nh"> <td> No issues in your state at this time. </td> </tr> <tr class="nv"> <td> No issues in your state at this time. </td> </tr> <tr class="ny"> <td> No issues in your state at this time. </td> </tr> <tr class="or"> <td> No issues in your state at this time. </td> </tr> <tr class="sc"> <td> No issues in your state at this time. </td> </tr> <tr class="tn"> <td> No issues in your state at this time. </td> </tr> <tr class="tx"> <td> No issues in your state at this time. </td> </tr> <tr class="va"> <td> No issues in your state at this time. </td> </tr> <tr class="vt"> <td> No issues in your state at this time. </td> </tr> <tr class="wa"> <td> No issues in your state at this time. </td> </tr> <tr class="wi"> <td> No issues in your state at this time. </td> </tr> </table> </center></td> </tr> </table> </body> </html> Hello, If i use this to protect myself from XSS scripting, do you think that it will be enough? http://www.hscripts.com/scripts/Java...e-html-tag.php Thank you. Can someone not just block this script, by banning javascript.? Hi guys, I'm trying to work on this code to make transportation an additional option when adding a reservation at http://morningstararuba.com/reservat...servation2.htm. But there must be some errors, I included part of the code, because it does not activate the selection box. Appreciate your help, thanks! Code: <tr> <td>Champagne:</td> <td><select name="champagne" size="1" disabled tabindex="16" onchange="javascript:total_cost(passangers,charter_request,champagne,cost)"> <option selected value="None">None</option> <option value="Freixenet">Freixenet</option> <option value="Veuve Cliquot">Veuve Cliquot</option> <option value="Veuve Cliquot Vintage">Veuve Cliquot Vintage</option> <option value="Moet Chandon Brut">Moet Chandon Brut</option> <option value="Moet Chandon Brut Rose'">Moet Chandon Brut Rose'</option> <option value="Moet Chandon Rose' Vintage">Moet Chandon Rose' Vintage</option> <option value="Dom Perignon">Dom Perignon</option> <option value="Dom Perignon Rose'">Dom Perignon Rose'</option> </select></td> </tr> <tr> <td>Transportation:</td> <td><select name="transportation" size="1" disabled tabindex="16" onchange="javascript:total_cost(passangers,charter_request,champagne,transportation,cost)"> <option selected value="None">None</option> <option value="Bentley Roundway">Bentley Roundway</option> </select></td> Dear Forum, I have a website of quite a few pages which also has a style sheet switcher so the user can select their own customised graphics and layout (css file) these css files load in the graphics but only when the call is clicked... even if the page has already been opened for seconds or minutes when the graphics could have been loaded in for an instant switch. so i implemented the following code: Code: <SCRIPT language="javascript"> function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } </SCRIPT> <body onLoad="MM_preloadImages('/corporate/heading.png','/creative/heading.png','/earth/heading.png','/under-the-sea/heading.png','/space-and-stars/heading.png','/classical/heading.png','/corporate/document.jpg','/space-and-stars/document.png','/creative/document.jpg','/earth/background.jpg','/under-the-sea/background.jpg','/classical/document.png','/classical/background.jpg','/under-the-sea/document.png','/corporate/home-graphics.png','/earth/content.jpg','/earth/footer.jpg','/earth/home-graphics.png','/under-the-sea/home-graphics.png','/creative/home-graphics.png','/space-and-stars/background.jpg','');"> it works fantastically - you open the page and as long as it takes to notice where you can click the styles is the same amount of time it takes to have the styles cached for the styles switch immediately and effortlessly. however, the site has grown and is now quite a number of pages with the above in each html file. ive just added a "creative 2" style, which has caused the above to need updating........ the maintenance of this code is inefficient to edit each page. would someone be able to point or show me how to, in principle: Code: <body onLoad="MM_preloadImages('/styles-code.js);"> styles-code.js?? page: '/corporate/heading.png', '/creative/heading.png', '/earth/heading.png', '/sea/heading.png', '/classical/heading.png', '/corporate/background.jpg', '/creative/background.jpg', '/earth/background.jpg', '/sea/background.jpg', '/classical/background.jpg', etc and have 1 page of this code called in by all pages in an easy to see and edit list? would really appreciate guidance with this, Quote: Hi, below code is only working in Firefox but not in Internet Explorer. Once I select YES from drop down list, then the next text box should be greyed out and the second should show value 10. This works in Firefox but not in Firefox . Code: <html> <head> <title>Untitled</title> <script> function enable() { document.myForm.textbox.disabled = false; document.myForm.textbox2.value = 0; } function disable() { document.myForm.textbox.disabled = true; document.myForm.textbox2.value = 10; } function value() { document.myForm.textbox2.value = 10; } </script> </head> <body> <form name="myForm"> <table> <tr> <label> Do you accept </label> <td> <select name="na"> <option value="yes" onclick="disable()"> YES </option> <option value="no" onclick="enable()"> NO </option> <option value="NA" onclick="disable()"> NA </option> </select> <input type="text" name="textbox" value="" disabled> <input type="text" name="textbox2" value="10" > </td> </tr> <tr> <td> </td> </tr> </form> </body> </html> Hi there everyone.. I have a little assignment due and I have been absent for a long time (wont go into details) but I'm sorta lost on how to do it. I'm sure it's really easy. Code: Scanner kbd = new Scanner(System.in); System.out.println("\n\n" + "Box Drawing Program\n\n" + "When prompted, " + "enter the height & width of a box. " + "Enter a negative height\nto finish.\n\n"); System.out.print("Enter a height & width: "); int height = kbd.nextInt(); while (height > 0) { int width = kbd.nextInt(); kbd.nextLine(); drawBox(height, width); System.out.print("Enter another height & width: "); height = kbd.nextInt(); } kbd.nextLine(); System.out.println(); "Now add a helper function named drawBox. It takes the height and width from main and prints a box of that size." "Here is a sample run: Box Drawing Program When prompted, enter the height & width of a box. Enter a negative height to finish. Enter a height & width: 4 7 ******* * * * * ******* Enter another height & width: 3 8 ******** * * ******** Enter another height & width: -1 " I know it's probably something easy, but I'm really lost.. Any help would be greatly appreciated. Edit: The box seems to mess up when I paste it, it should look like a rectangle, haha Hello, I am trying to create an imageuploader for my forum hosted on domain forum.com (fictional domain name) The image uploader is hosted on domain uploader.com (fictional domain name) When the uploader is done i want info to be passed from the uploader to the texteditor on the forum using javascript. I tried everything i could think of with document.getElementById but to no avail. The element on the forum is clickableEditor.textarea Is it possible and if so, can someone please help me out? I want to have a real time text ticker. I would be able to type something in and it would continue to scroll until I typed something else (followed by the return key), and it would scroll that, without the end-user having to refresh their screen to see the update. I was hoping their might be a script out there already that does that, but since I can't find one, I thought I'd see about trying to create one. What would be the most practical scripting language to use? Or if you know of something that does this already, could you point me in the right direction. Can Someone please help me with the script for making this work. This is a assignment I am having trouble with the required codes bring up a discount box displaying the output details dependent on the discount code used. I Belleive the While operator is used for this can someone please help me?I no my codes are probably all wrong but am desperate for help thanks For this part of the question you can assume that the user always inputs one of the three correct codes, FSSAVE, ISSAVE and SOSAVE. If (Discount code entered is FSSAVE) give discount one else if (discount code entered is ISSAVE) give discount 2 else if (discount code entered is SOSAVE) give discount 3 var discount; fSSAVE; iSSAVE; sOSAVE fSSAVE = 20p iSSAVE = 30p sOSAVE = 40p discount = window.prompt('Please enter a discount code,' Here'); Ok, for starters I'm not a beginner and my website is running under standards mode (not quirks). When my site loads I perform: Code: window.location.replace(window.location.href + "#encodedstuff"); The effect being that no new history points are created and the very first history point now includes some encoded info in the hash. When the user closes and relaunches IE8 and then chooses "reopen last browsing session" I expect IE to make the request for the page including the hash value. It does NOT! It simply makes the request for the URL without the hash (and then adds the hash as the next history point). I need help figuring out why and if there is a way to accomplish this without needing to add a parameter to the location get request (which will cause my site to reload upon launch if this parameter is not already set... I don't want it doing that). Please note that the browser DOES behave if I copy the new URL, including the hash value and paste it into a new tab (closing the old tab). When I relaunch IE8 and reopen the previous session it does make the request with hash value and my site is able to get the required info out of the hash. It only fails for a tab that initially did not have a hash and my script performs the above location.replace. Solving this is critical for my application, so I seriously appreciate any help! I am trying to re-write a script that I found on w3schools. The script should check whether ALT key was pressed or not. My objective is not to use any inline scripts and to refer to the event within a function. My script is not working. Could someone please have a look at it and help me? Thank you very much <code> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Event Object</title> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <script type="text/javascript"> function general() { document.getElementsByTagName("body")[0].onmousedown=function() { if(document.getElementsByTagName("body")[0].onmousedown.altKey==1) { alert("You pressed Alt key"); } else { alert("ALT key was not pressed"); } } } window.onload=general; </script> </head> <body> <p> Click somewhere in the document, we will tell you whether or not you pressed ALT key </p> </body> </html> </code> I am not super familiar with code - I can easily take code and with a little direction get the desired end result so anyone who can help me with this it will be VERY appreciated. I don't even know what terms to search in order to create a page that I am looking for.... So here goes: I want to model our distributor page after a R E D K E N.com Distributor Locator Page. Here is what happens.... There is a drop down menu of the 50 states, and when you select the state the table of information below changes. screen shots below I am sure this is fairly easy to resolve, however I don't know where to begin. Thank You in advance for your time. Kristi Hi, this will sound stupid, because it is, but i was browsing reddits creepy subreddit, and there was a post (This website's description on Google... : creepy) that was about a creepy site with some ambiguous text, i pressed the link in the comments and got to the site, when i went back, i kept seeing a smudge but only on the reddit creepy subreddit on the screen, idk how this is possible, i've never seen it before, and its on all devices that are connected to the same router, they all get that smudge, so do you guys know any possible ways to fix this? the site is (Krakl) and deleting cookies, cache, restarting etc didnt help, and that smudge is really annoying. tldr; visited site, got smudge trough a script on other site, i see it on other pcs connected to the same internet too. How to remove this, could my pc be infected or something, is this XSS? Sorry, i know that no one here is probably used to this, but i just about exhausted every single option with no results and i want to know whats causing this. Reply With Quote // I have a page with a GoogleMap with a GoogleBar and I would like the GoogleBar to appear with something written in it already and to have that search executed. In other words, I would like to "write something to the GoogleBar and press Enter" automatically as soon as the map loads. How can I do this? btw: By GoogleBar, I mean the search bar that appears on the map after using the enableGoogleBar() function. Hi, I'm not sure where I have translated this incorrectly. I have one google map embedded on my page which works fine. But I wanted to add a second one. I thought the easiest way to do this would be to have a second page which is called later on with all the details on it for the second map. However although I think (this I presume is where I went wrong) I have replicated the instructions correctly the place holder for the second map just remains blank. This is the code for my called page with the instructions for the second map: PHP Code: <?php echo $_POST['Map'] . '<br />'; ?> <div id="placemap_canvas"></div> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> html {height:250px} body {height:250px} #placemap_canvas {width:100%; height:150px;} </style> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true" /> </script> <script type="text/javascript"> var latlng = new google.maps.LatLng ( <?php include("dbconnect.php"); $result = mysql_query("SELECT * FROM regions WHERE RegionPId='{$_POST['Map']}'"); while($row = mysql_fetch_array($result)){ echo $row['maplink']; } mysql_close($con); ?> ); var myOptions = { zoom: 4, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("placemap_canvas"), myOptions); } </script> And this is the script of the main page, just in case I would be better off keeping them both in one place. Code: <head> <script type="text/javascript"> function loadSubPlace(File,ID,Msg,Eile,EID,Esg){ loadXMLDoc1(File,ID,Msg); var mimer = setTimeout(function(){loadXMLDoc1(Eile,EID,Esg)},5000); } </script> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> html {height:250px} body {height:250px} #map_canvas {width:30%; height:250px;} </style> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true" /> </script> <script type="text/javascript"> function initialize() { var latlng = new google.maps.LatLng ( <?php include("dbconnect.php"); $result = mysql_query("SELECT * FROM countries WHERE Country='{$_SESSION['Country']}'"); while($row = mysql_fetch_array($result)){ echo $row['Map']; } mysql_close($con); ?>); var myOptions = { zoom: 4, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); } </script> </head> <body onload="initialize()"> <div class="countryright" id="map_canvas"> include("dbconnect.php"); $snowball=explode(';',$_POST['syringa']); $turnsol=$snowball[1]; $violet =$snowball[2]; $wakerobin=$snowball[3]; global $turnsol; global $violet; global $wakerobin; echo '<center><b><big>' . $wakerobin. '</big></b></center><br /><br />'; $result=mysql_query("SELECT * FROM regions WHERE country='{$turnsol}' AND region='{$violet}' AND place='{$wakerobin}' AND sub !='' ORDER BY sub ASC"); while($row = mysql_fetch_array($result)){ $wheat="{$row['RegionPId']};{$turnsol};{$violet};{$wakerobin};{$row['sub']}"; $tigerlilly=$row['RegionPId']; echo '<input type="button" class="button3" name="place" id="place" value="' . $row['sub'] . '" onclick="loadSubPlace(\'getPlace.php\',\'txtHintPlaceSub\',\'hepatica=' . urlencode($wheat) . '\',\'getPlaceMap.php\',\'placemapcanvas\',\'Map=' . urlencode($tigerlilly) . '\');" />'; } echo '<input type="button" class="button3" name="addplace" id="addplace" value="Add Place" onclick="loadXMLDoc1(\'getAddPlaceSub.php\',\'txtHintPlaceSub\', encodeURI(\'addsubplace=' . $_POST['syringa'] . '\'));" />'; echo '<br /><br /><div id="txtHintPlaceSub"></div><br /><br />'; mysql_close($con); ?> I've cut out the script that doesn't relate to this so I hope I haven't missed anything important. Can the Google API replace scraping? You can get blocked by Google if you scrape, but can you get the same info from the Google API at no risk?
Hello Everyone! I'm new to the forums but have a question with Google Translate I'm trying to add to my site. I believe the code for Google Translate is a Java Script and I'd like to put this on my website in the side column. The only thing I would like to modify is a <br> (break) between the Powered by and Google Translate. So I would like it to be center aligned like: Powered by Google Translate Right now it is stretching out the column because of the added space and frustrating me! Any idea how to do this? Here is the code: Code: <div id="google_translate_element"></div><script> function googleTranslateElementInit() { new google.translate.TranslateElement({ pageLanguage: 'en' }, 'google_translate_element'); } </script><script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> My knowledge of javascript and coding in general is very very limited so any changes you make or where I should put the code, definitely let me know Thanks, Phil |