Jump to content


Popular Content

Showing content with the highest reputation since 07/17/2013 in all areas

  1. 7 points

    User authentication

    I have a table used to authenticate access. For some reason, I currently have 24 users and it works. The problem is I'm trying to add more and the id/password doesn't work for the new users. What am I doing wrong? Is there a restriction as far as how many users you can have???
  2. 5 points

    Conditional Formatting Trick

    Check out this trick I stumbled upon. Put Caspio Variables into your Classes so you can use CSS to dynamically style your pages. (js not required) Div to dynamically format <div class="action[@field:action]"></div> css .actionCall { background-image: URL("../img/call.png"); } .actionEmail { background-image: URL("../img/email.png"); } .actionText { background-image: URL("../img/text.png"); } Dynamic Elements - load all options, and hide all but needed <a class="btnFile fileName[@field:FileName]" href="../some/dir/[@field:FileName]">Download</a> <a class="btnLink fileLink[@field:FileLink]" href="[@field:FileLink]">View File</a> css /*-- when [@field:***] is null, hide the div --*/ .fileName, .fileLink { display: none; } Hope this helps Think Easy CHAD -I know the Title of this Forum is "Ask....", but IDK where else to share stuff like this.
  3. 5 points
    JavaScript Solution: Select multiple values from a listbox in an Update DataPage Feature Description: This JavaScript solution shows how to enable the selection of multiple values using a listbox form element in an Update or Details DataPage. When the DataPage is submitted, the values selected in the listbox are stored in the table as a comma-separated string. For example: A field named state in a table contains US states. If three states California, Nevada and Oregon are selected in this listbox, the value stored in that field will be "California, Nevada, Oregon". When the DataPage is opened, the current values will be preselected in the listbox. Implementation: This solution can be used "as-is", without any changes if a. It is used in an Update or Details DataPage and b. The field name state exists in the DataPage. To use this solution, copy the code below and paste inside the HTML Footer section of the Update/Details DataPage using the Caspio Bridge DataPage Wizard. <script type="text/javascript"> var v_state = "[@field:state]" ; var o_state = document.getElementById("EditRecordstate") ; o_state.multiple = true ; function f_listbox() { if ( v_state.indexOf(",") > 0 ) { for (var i=0 ; i < o_state.options.length; i++ ) { if(o_state[i].value == v_state) { o_state.remove(i); break ; } } var o_st = v_state.split(", ") ; for (var j=0 ; j < o_st.length; j++) { for (var i=0 ; i < o_state.options.length; i++ ) { if(o_st[j]== o_state.options[i].value){ o_state.options[i].selected = true ; break ; } } } } } document.addEventListener('DataPageReady', f_listbox); //You can also use the line below instead of the eventlistener // setTimeout(f_listbox, 20); </script> Tips for Customization To customize this script to enable the same feature for the additional field, duplicate the first three lines using your second field name. Then duplicate the code inside the f_listbox function. Tested Browsers This JavaScript solution was tested on the following platforms and Internet Browsers only. # MS Windows - IE 10, Firefox 25.0.1, Chrome 31.0.1650.57, Safari 5.1.7 Disclaimer: Use these JavaScript solutions at your own risk! They are provided to assist you in the customization of your programs and while we believe they work properly, by using them you accept all responsibility about them and confirm that they are not a feature of Caspio's platforms and as such are provided "as is" without any warranties, support or guarantees.
  4. 4 points

    Timestamp When "y" Clicked

    MayMusic - Thanks so much, it is working now. For those interested in the solution, The additional problem was that Timestamp field in the Table had to have a datatype of Text(255). In the Details Page, Timestamp was changed to a Text Field. Once Yes was clicked, the textfield was filled with a timestamp, and then when Update was clicked, the field in the Results Page was filled with the timestamp. Thanks again.
  5. 2 points
    Hello Batchini! Well, there would be two ways how to create this. If we're going to use trigger, this may be a complex one. One easy way I thought of is with the use of Calculated Fields, but this would only be on a DataPage Level. You can use this formula to get the Minimum Value. SELECT MIN(FieldName) FROM Child WHERE ID = target.[@field:FieldID] Assuming if you have a foreign Key inside your child table. So we'll be using this formula to display the minimum value, Datasource would be your parent table. I hope this helps. Scar();
  6. 2 points
    Hello @TroubleShooter, The reason why the ampersand symbol is being cut is because Caspio renders the link literally. In this example: <a href="https://www.google.com?myParameter=[@field:someField]"> Link </a> If "someField" evaluates to "Some Value & Another Value" then the mark-up would result to <a href="https://www.google.com?myParameter=Some Value & Another Value"> Link </a> This is when urlencoding comes into play. What this does is substitutes the special characters in a standard HTML format which interprets characters a different way. You may try using my code snippet below. 1.) Just replace the link ID with the id attribute of your link. 2.) repeat the addParameter function as needed. The first argument is your parameter name, and the second argument is your field value. <a href="#" id="link-1">MyLink</a> <script> // DO NOT TOUCH FROM THIS POINT var params = []; addParameter = function(qs, val){ params.push(`${qs}=${encodeURIComponent(val)}`); } //UP TO THIS POINT var link_id = "link-1"; var base_url = "https://SomeDomainFrom.caspio.com/dp/926560as124321324dasd00a6523f123123624543123423fc0453b9093"; addParameter('boo', '[@field:SelectedAction]'); //repeat as needed addParameter('far', '[@field:SelectedAction]'); // DO NOT TOUCH FROM THIS POINT var queryString = params.join("&"); document.querySelector(`#${link_id}`).href = `${base_url}?${params.join("&")}` //UP TO THIS POINT </script> Works for me. -DN31337!
  7. 2 points


    Hi @telly, This is doable, you just need to add <image src="IMAGEURL"> on your hint. Sample Result Bellow:
  8. 2 points
    Hi Corpcat, You can just redeploy your DataPages, new deployment codes with the updated Caspio Site URL will be generated. And for the passing of parameters, the process is still the same. It should look like this: <iframe frameborder=0 style="width:100%; height:700px" name="Document_Entry Web Form_New" title="Document_Entry Web Form_New" src="https://c0eib342.caspio.com/dp/aabb20003c459fa6fab94c8dbe01?Grace_Bar_Code=[@Grace_Barcode_No]&Recal_Box_No=[@Recal_Box_No]">Sorry, but your browser does not support frames.</iframe> Hope this helps. -JolliBeng
  9. 2 points

    JS Date Restrictions Quit Working

    @abitaquest, There's a possibility that the reason it's not working now is because of the recent Caspio update. Event like onsubmit will no longer be supported and you need to use Caspio's built-in event handlers. Kindly please check the link below for more information: https://howto.caspio.com/release-notes/caspio-bridge-13-0/13-0-impacted-areas/ https://howto.caspio.com/datapages/ajax-loading/ I hope this helps.
  10. 2 points
    I'm so excited. I found a way to make it work even if AJAX Loading is enabled. Luckily, I came across Caspio 13 Impacted Areas and kudos to good guy Caspio making this AJAX Implementation customizable. previous post TL:DR? Follow this instead. To make this work: 1.) Gey an API key here. Enable access to your domains (Website, Caspio URL and Integration URL) (You can see the last two in your Caspio Bridge > Account > Account Settings). 2.) Create/Edit your Submission Form DataPage 3.) Make sure 'Disable AJAX loading' remains UNCHECKED in the DataPage Data Source Section. (If you want otherwise, refer to my previous post instead. This is not cross-compatible as of the moment). 4.) In the Configure Fields section, Add a Header and Footer. 4.1) Select your header, disable the HTML Editor, paste the code block below, replace y0uR_4P1_k3y_H3r3 with your API Key. <script type="text/javascript" src="https://lib.caspio.com/pub/jquery/jquery.js"></script> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=y0uR_4P1_k3y_H3r3"></script> <div id="cbwrapper"> 4.2) Select your footer, disable the HTML Editor, paste the code block below, edit the variables to correspond to your table fields. </div> <span id="error_message"> </span> <script type='text/javascript'> var lat_id = 'InsertRecordlat'; var lng_id = 'InsertRecordlng'; var address_id = 'InsertRecordAddress'; var city_id = 'InsertRecordCity'; var state_id = 'InsertRecordState'; var zip_id = 'InsertRecordZip'; var wrapper_id = 'cbwrapper'; var msg1 = 'Please input a valid address'; if(typeof jQuery != 'undefined'){ var cb_geocoder = cb_geocoder = new google.maps.Geocoder(); document.addEventListener('BeforeFormSubmit', function (event) { event.preventDefault(); var add = $('#'+address_id).val(); var city = $('#'+city_id).val(); var state = $('#'+state_id).val(); var zip = $('#'+zip_id).val(); if(!add || !city || !state || !zip){ alert(msg1); }else{ var full = add +','+city+','+state+' '+zip; cb_geocoder.geocode({address: full}, cbCallBack); } }); }else{ document.getElementById("error_message").innerHTML = "This Datapage require Standard Caspio Deployment for full functionality." ; } function cbCallBack(locResult){ if(locResult != "" && locResult.length>0){ var lat1 = locResult[0].geometry.location.lat(); var lng1 = locResult[0].geometry.location.lng(); lat1 = Number(lat1); lng1 = Number(lng1); $('#'+lat_id).val(lat1); $('#'+lng_id).val(lng1); $('#'+wrapper_id+' form').submit(); }else{ alert(msg1); } } </script> 5.) After saving this, you should be able to make this work. Basic Troubleshooting: > Check your Console by doing a Right-Click > Inspect in your browser. NoApiKeys: You forgot to add your key in the script tag. Google documentation here ReferrerNotAllowed: Check if the domain of your webpage is listed in your Maps API Console (Maps JavaScript API > Credentials > (Key) > Details) There's a bunch of other warnings/errors but I think the first two are the most common and critical. > Feel free to reply to this thread if you encounter problems. Note: This is not a full-fledged fix. I know I skipped adding the WebForm AppKey. Let's just wait for the official Caspio documentation updates. Regards, DN31337
  11. 2 points
    Got an answer to my question (Thanks so much Francis!) I got confirmation that the "Social Login Field" is not the same as the account name or the email address. For example, the Google social login field is a text string that resembles the following: "Google:123456789012345678901" Where it's the word "Google:" followed by a 21-digit number that uniquely identifies the Google account. There is a specific set of steps necessary to obtain that information which is not yet documented on the Caspio Support site. As soon as I have a chance I will append the instructions here in case anyone else ever needs to do this as well. However, the unfortunate problem is that this doesn't actually allow the desired results to be accomplished (specifcially: limiting access to a DataPage to specific Google users only by using "ID Service only"). This is because the method that is required to obtain the Google social login field is initiated by the google user, so it can't directly be used to create a list of allowed users because this causes a catch-22 situation where the Caspio admin/developer can't know the ID Service social login field without allowing the new user to login first, and once they do so, they are automatically added to the authentication data source. Therefore you basically need to allow access to all google users in order to get their unique social id which would be used to limit their access. Classic chicken & the egg dilemma. But I have an idea for how to avoid that conundrum and am working on implementing it now. Hopefully it will work...
  12. 2 points
    Hi, The update button appears only if you have at least one editable field on the datapage. Perhaps you hide that field using rules or javascript. Anyway you can hide update button using java script. Just add header/footer and paste the following code in the footer: <script> window.onload = function hide(){ document.getElementById("Mod0EditRecord").style.visibility = 'hidden'; } </script>
  13. 2 points

    Reload Main Page

    Hello Farnsbarnes, Can you tell me please, do you use different domains for parent page, and for iframe? If yes, proposed solution cannot works due to security restrictions. Can you please open browser console, and look for some run-time errors, when you submit form in iframe? Can you see some error with similar text? "SecurityError: Blocked a frame with origin..." If you have similar error, you can use some different technique based on messages. Please pay your attention that it will works in modern browsers only. You can see list of supported browsers here http://caniuse.com/#search=postMessage Add code below to header on your parent page: window.onmessage = function (e) { if (e.data === "refresh") { location.reload(); } }; Add code below to footer in your DataPage, which will open via iframe. <script type="text/javascript"> document.getElementById("caspioform").onsubmit = function () { if (window.parent && window.parent.postMessage) { window.parent.postMessage("refresh", "http://bridge.caspio.net"); //put your own domain here } } </script> Thanks
  14. 2 points
    I address it this way: I have a few Caspio user classes, say user, superuser, admin. All datapages that use the "user" authentication, are embedded on wordpress "User" template-based Pages. The User template, in turn calls a specific WP "User" menu. So I have 3 authentications, 3 Page templates, and 3 menus. Finally, and I'm embarassed to say it: since these WP menus are NOT behind Caspio authentication, public users who guess a URL of one of your pages could see the menu, but obviously not the datapage embedded on the page. Still, I don't like that, so I have a script that looks for a DIV in my authentication form, and if present, hides the WP nav with CSS. Pretty nasty, and not really that effective, but it beats using 3 Caspio datapages for 3 menus.
  15. 2 points
    Thank you Iren, Looking at your option, i came to a simple solution in caspio. Search and Report Wizard - Results Page Options (advanced) > Total records returned: 1 Search and Report Wizard - Results Page Options (Standaard) > Default sort order: id = z-a Search and Report Wizard - Details Page > Always skip Results Page when only one record found: checkt thank you for you input
  16. 2 points

    Expiration Date

    Add this code to the footer of the page. Make sure to replace "DATEFIELDNAME" with the field name you want to save this expiration date on <script> function f_date(){ var v_currentDate=new Date(); v_currentDate.setDate(v_currentDate.getDate() +10); var v_assignDate = (v_currentDate.getMonth() + 1) + "/" + v_currentDate.getDate() + "/" + (v_currentDate.getFullYear()); document.getElementById('InsertRecordDATEFIELDNAME').value = v_assignDate; } f_date(); </script>
  17. 1 point
    @AtayBalunbalunan, Thanks for your reply. I am deploying the Datapage on a self hosted WordPress website. I've tried it both using the Embed and WordPress (with plug-in) deploy methods. I tested the direct link in Firefox, I did see the authentication fields. I then tried the page on Microsoft Edge and that worked. On a whim, I decided to try it again on Firefox and now the fields display! I really don't know how to explain it, but it probably has something to do with cache and/or cookies, which I did clear when previously testing. I guess as long as it continues working it will be one of the great unsolved mysteries. Thanks for you assistance!!
  18. 1 point
    Hello @Sherif The formula should look something like this: DATEDIFF( hh, (SELECT TOP 1 (Name_Of_Your_Date_Field) FROM Your_Table_Name WHERE Name_Of_ID_Field = target.[@field:Name_Of_ID_Field] AND Name_Of_Your_Date_Field < target.[@field:Name_Of_Your_Date_Field] ORDER BY Name_Of_Your_Date_Field desc), target.[@field:Name_Of_Your_Date_Field] ) This formula selects the last one entry with the same ID you have entered and return the difference in hours between submitted date and selected date.
  19. 1 point
    Hi @Vitalikssssss, You should add two text fields to the Selected fields on the Submission form and one of them make a Dropdown form element. After that create a Header and Footer element and past the following code into the footer after disabling HTML edotir: <script> document.addEventListener("DataPageReady", function() { let dropdown = document.getElementById('InsertRecordname'); let textfield = document.getElementById('InsertRecordnumber'); let change = function() { textfield.value = this.options[this.selectedIndex].value; }; if (document.addEventListener !== undefined) { dropdown.addEventListener('change', change, true); } else if (document.attachEvent) { dropdown.attachEvent('onchange', change); } else { dropdown.onchange = change; } }); </script> InsertRecordname and InsertRecordnumber are the ids of the text fields elements where InsertRecordname is set to the Dropdown form element.
  20. 1 point
    The value for X should be in the Default Value field under Field Options.
  21. 1 point
    Hi, You can also add a simple CSS code on your Style to enforce Uppercase in the input fields of your Submission form. You just need to follow these steps: Edit the Style that you are using. On the DataPage Elements, go to Form Details -> Fields Click Source tab, Look for .cbFormTextField and add this code: text-transform: uppercase; ~JolliBeng
  22. 1 point
    I think it would be better if you can create a test datapage and check if that will work. If the replicated page works, then there is something wrong with your URL in your original link. Re-deploy and re-paste the URL of the deployed DataPage. Hence, if the replicated Datapage still does not work, check your HTML code.
  23. 1 point
    Is it possible to configure a report view to display table rows of data that have background table shading either based on a set criteria of the cell data, or copying from an excel data source file? For example, green shaded cellsi in excel data source are green in Caspio output, or Caspio programming can set cell shading based on cell values? Ie. if value > 1 then green shading, otherwise no shading. Any guidance I appreciated, could not see this in the support files. Thanks, Anthony
  24. 1 point

    Bulk Edit Auto-Submit

    Hi, Does anyone know how to put code in the footer of a Bulk Edit form so it auto-submits (so the user doesn't have to click the Update button)? This code: <script type="text/javascript"> if(document.getElementById("caspioform")) { document.getElementById("caspioform").style.display = 'none'; setTimeout('document.forms["caspioform"].submit()',1000); } </script> works only on a regular Update or Submission form. If you use it in Bulk Edit it just keeps refreshing the records over and over. So there must be some specific code for Bulk Edit. As well, if I can get Bulk Edit to auto-submit I'd like to remove he Update button so if anyone has code for that it'd be really great. Thanks!
  25. 1 point


    Hi @Jess147, You can achieve that workflow using triggered actions. But first, the records that needs to be calculated should be saved on your table. I suggest that you use Formula fields for calculations or directly calculate it under your triggered actions. You may refer to the following links: https://howto.caspio.com/tables-and-views/data-types/formula-fields/ https://howto.caspio.com/tables-and-views/triggered-actions/ -JolliBeng
  26. 1 point

    Autosuggest limited to 10 entries

    Hi @IvanV, To make the autocomplete search from the third character, you should add AutoCompleteStartFromCharacter="3" attribute at the end of the <LookUp DataSourseName ... /> tag. Also, you can use AutoCompleteEndAfterCharacter attribute to stop the search for the autocmplete and AutoCompleteStartDelay - to delay the dropdown. Hope it helps.
  27. 1 point
    So you might end up with 9000 records in that table over a year - my main table has 365000 records, so I dont think it will cause a problem for performance. Ok I think you should create a view that links the two tables together using the Job number - then you can create two reports from the one view. The first will show the Orders not completed, by selecting only the fields form the Ordering table and the 2nd will show the Completed orders. Then embed both tables into a details page which passes the Job number as a parameter to both embedded tables.
  28. 1 point

    Geo Coordinates From Phone

    Here is an updated version of this code to work with the ajax feature on DataPages: <script type="text/javascript"> document.addEventListener('DataPageReady', function (event) { function initGeolocation() { if(navigator.geolocation) { // Call getCurrentPosition with success navigator.geolocation.getCurrentPosition(success); } else { alert("Sorry, your browser does not support geolocation services."); } } function success(position) { //Change to EditRecord for an update form //Current_Long and Current_Lat should change to reference correct field names document.getElementById("InsertRecordLong").value = position.coords.longitude; document.getElementById("InsertRecordLat").value = position.coords.latitude; } initGeolocation(); }); </script>
  29. 1 point
    Hi @bbeshlian , Here is a snippet of JavaScript and JQuery code to hide columns if they are empty: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> document.addEventListener('DataPageReady', function(e) { let $table = $('.cbResultSetTable:first'); let tbody = $table[0].tBodies[0]; let colsLen = tbody.rows[0].cells.length, rowsLen = tbody.rows.length; let hideNode = function(node) { if (node) node.style.display = "none"; }; for (var j = 0; j < colsLen; ++j) { let counter = 0; for (var i = 1; i < rowsLen; ++i) { if (tbody.rows[i].cells[j].textContent.trim() == '') ++counter; } if (counter == (rowsLen - 1)) { for (var i = 1; i < rowsLen; ++i) { hideNode(tbody.rows[i].cells[j]); } hideNode(tbody.rows[0].cells[j]); } } }); </script> You should put the code above into the Footer element on the Search and Report Wizard - Configure Results Page Fields.
  30. 1 point

    Database Reindexing

    Hi, I've contacted support about this and they told me that it is not yet possible in Caspio. However, they gave me this link on how to optimize the performance of you application: https://howto.caspio.com/datapages/best-practices-in-creating-caspio-applications/ I hope this helps. Thanks.
  31. 1 point
    Hi bookish, Please note that bulk edit is treated as a single update event in Triggered Action as you have already discovered. I would suggest using COUNT expression in order to count the number of records updated with a bulk edit and add this value to existing value from SCHEDULES table. So, you Triggered Action will look similar to this one: Hope this helps.
  32. 1 point

    Any Programmers for Hire

    Working with Chad (ezIQ) was effortless and an absolute pleasure. I asked him to figure out a few custom solutions for my Caspio project, and he quickly provided javascript solutions that have functioned beyond my expectations. His code is well organized and includes plenty of comments for the novice, such as myself. I highly recommend his services and look forward to future projects.
  33. 1 point
    Hi, it can be done using sql substing query in the formula field: SUBSTRING ([@field:First_name] ,1 , 1) + SUBSTRING ([@field:Last_name] ,1, 1) However, in case of further using username field in authentication, this is not the best option since you can using only unique field as a username. Therefore, you may insert the following script in the footer of your submission form. <SCRIPT LANGUAGE="JavaScript"> function concatenate() { var position1 = document.getElementById("InsertRecordFirst_name").value; var position2 = document.getElementById("InsertRecordLast_name").value; document.getElementById("InsertRecordUsername").value = position1.substring(0, 1) + position2.substring(0, 1); } document.getElementById("caspioform").onsubmit=concatenate; </SCRIPT>
  34. 1 point
    Check out this amazing trick I learned this morning. You can pass params into a datapage by adding the param right into the snippet from Caspio <script type="application/javascript"> var someVar = 'abc'; try{f_cbload("****************89c82&tf="+someVar,"https:");}catch(v_e){;} </script> My actual use case <script type="application/javascript"> var htmlFile = location.pathname.substring(location.pathname.lastIndexOf("/") + 1); try{f_cbload("****************89c82&tf="+htmlFile,"https:");}catch(v_e){;} </script>
  35. 1 point
    Hi TexterVaid, It sounds like cascade update setting in relationship. You can read more here Hope that helps
  36. 1 point
    This is not possible in Caspio platform, unless you write a trigger to add the value once there is a new entry to the table. It is easier if you do it in Excel and them import the complete sheet to Caspio
  37. 1 point
    Now that Caspio has been nice enough to add pivot tables to reports, I went to build an attendance report that I had been waiting to build. My non-profit education group needed to check students in to an after-school program, then have a real-time view of who was checked in that day, and how many/which sessions each student had checked into over time. Perfect application for a simple pivot table, right? Each student is checked in by clicking on their name on a drop-down list and clicking Save. I wanted the date to be automatic to save check in time and preserve accuracy. Columns would be the date of the visit, rows would be the student name or ID for the pivot table. But there was a catch. If I used the timestamp field to record the date it was saved as mm/dd/yyyy hh:mm:ss. Then if I used that value for my column in the pivot table, each second was given its own column. I wanted each date to be a column. After a couple of hours of looking for an answer online and in documentation I found none, but eventually figured it out, and want to share it with the community. The workaround that I figured out was to create a second data field called override date in the table in date/time format. I then fill that field in the data input form on the Configure Screens page of the Web Form Wizard using an external parameter and a label format that I found buried in one of the reports: [@cbTimestamp*]. Click on the thumbnail below to view the attached jpeg for a screenshot. So now this field only contains the mm/dd text data from the timestamp and when I use it as my column, any student who was clocked in that calendar day shows up in that column of the pivot table. Hope this helps someone.
  38. 1 point


    I got it to send a quick test email when a record was updated using mandrill. Hopefully they will add more triggers soon!
  39. 1 point

    Hint Moves Down When Page Scrolls

    Hi Chad, What browser do you use? I have checked in Firefox, Internet Explorer and Chrome and the issue does not reproduce. Could you provide the URL of your page? Maybe, I will be able to find the reason of the issue.
  40. 1 point
    I am able to get the cascading dropdowns to work in the details page for first selecting state, then county. However, I am having difficulty making it work in the grid edit mode of my tabular report. Since going through some of the Caspio HowTo documentation, I made my County table into more of a cascading table format that includes columns for both state and county. (I also have a separate table with the list of states in case I need to go back to distinct County and State lookup tables.) When a user selects a county, there is an implied state with it from the County table. My goal is to have the user be able to select the state first in my Facilities tabular report, then select the county as a cascading dropdown filtered on the state value. (Sometimes the state is known when a new facility record is added, but the county not until later.) When I try to implement cascading dropdowns in the grid edit page, there is no option to select the county name as the display value. The column "CountyId" in the Facility table is an integer number data type that stores the autonumber Id from the linked County table. I would appreciate anyone's suggestions! Screenshot included.
  41. 1 point

    How To Show Sums

    I need to be able to show a form that includes data from a primary table and then an HTML table of a related child table. I do not see any instructions on how to do this. Is this possible with Caspio? Or do I need to create an external HTML page to handle this that merges two different datapages? On a related now, I want to also show a summary report that shows info from the primary table, and then shows counts from the related child table. For example, I want something like this: name, count of orders, sum of order totals, data of last order How can I accomplish this?
  42. 1 point
    I have a Single Record Update form where once a user has submitted data on Record #123, I want any other users subsequently trying to update Record #123 to be "locked out" from submitting via that form. In other words, I need to be able to disable a form after it's been used once, or when Some_Field = Whatever. You could just disable it with Rules, but if 2 people arrive on the form before either has submitted, then the 2nd User rewrites over the 1st User's data. I need to prevent that from happening. Caspio Support recommends: In order to prevent the next users to submit/edit the same record, the "timestamp check" should be done upon form submission. A solution would be to write a JavaScript function to perform the "timestamp check" and then call the function on the form submission event. Can anyone please assist with this? I'm JavaScript illiterate. Thanks!
  43. 1 point

    Format On Display

    Hello, I have been storing phone numbers with the special characters ( ) - and I would prefer to store numbers only and format the data into phone numbers on display. I can format one per page, but only the first one. Can anybody help me with this? Thanks CHAD
  44. 1 point
    You need to change the code to: <script> if ("[@calcfield:3]"!="[@field:Current_Pay_Grade]") { document.write('<img width="15px" src="https://umghr-sjecs....images/flag.jpg" />'); document.write("[@field:Current_Pay_Grade] does not align with [@calcfield:3]. Check each job factor and the grand total."); } </script>
  45. 1 point

    No Records Found?

    Hello Aleks, Can you open your 2014-15 table in the Bridge? Does the data get imported at all? If you do not enter any name, do you get the same message? Is it the same Excel or maybe you have used a newer version of it?
  46. 1 point

    Result Page In A Pop Up Window

    Create your search and result pages in two different pages as described here http://howto.caspio.com/tech-tips-and-articles/parameters/how-to-separate-search-page-and-results-page-into-two-different-webpages/ In Configure Fields screen of the search page add Hear/Footer to create your customized button using the code below in the Footer: <input type="button" value="Search" onClick="gotoreport();"> <script language="javascript" type="text/javascript"> function gotoreport() { var URL = "URL OF THE REPORT PAGE?PARAMNAME=" + document.getElementById('FIELD ID').value + "& PARAMNAME=" + document.getElementById('FIELD ID').value; newwindow=window.open(URL,'name','height=200,width=150'); if (window.focus) {newwindow.focus()} return false; } </script> You need to replace URL OF THE REPORT PAGE with URL of the report page and PARAMNAME with the parameter name you are receiving in the report page in Configure Filtering Fields screen as described in the tutorial. Also FIELD ID with the real field ID. To hide the original submit button you can either add display:none; to .cbSubmitButton in the style you are using for this page or add a Header to the page and use: <style> #Submit{ display:none; } </style>
  47. 1 point
    One reason is the security restrictions since parent and child windows have different domain names. This happens if the parent/opener DataPage is embedded in your domain (yousite.com) and the popup DataPage (the one which is auto submitted) is called by direct URL (bn.caspio.com). To fix the issue, deploy the popup DataPage (the one which is auto submitted) on same domain as the opener and then use the following code in Destination and Triggers screen inside Display a Message text/HTML area: <script> window.close(); window.onunload = function(){ window.opener.location.reload();} </script>
  48. 1 point
    How to force a numeric keyboard? Is it possible? When user inputs to a number field, he/she would get the numeric keyboard on the iPhone browser. Thanks for any suggestion.
  49. 1 point
    You can try to create a new style, check "Show advanced options (CSS Source)" and then in Setting screen on Source tab under All remove all the CSS classes.
  50. 1 point

    File upload

    Is there a way to receive the uploaded file as an attachment in email?
  • Create New...