Jump to content


Caspio Guru
  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by HongTaiLang

  1. By the way, this method is not so perfect because it is hard to center the message. The form container size is dynamic. If the DataPage size is fixed with <div width = "****px"> in the Header, and </div> in the Footer. The style of the message can be set to the center.
  2. Hi, I could not find a standard setting for this. You can add id around paging message "Record %r of %t", add another message "Record 1 of 1" with a different id in the details page, use JS code to hide the "Record 1 of 1" message when default paging message displays, show the "Record 1 of 1" message when there is no default paging message. 1. Add id around paging message in the Localization <span id="paging">Record %r of %t</span> 2. Add another message "Record 1 of 1" with a different id in the details page. Hide the message as a default. For example: <div align="center" id ="pageNumber1" style="display:none;" class="cbFormNavigationCell cbFormNavigationMessage"> <span>Record 1 of 1 </span> </div> 3. JS code to display the previous message when id= "paging" id is not found. <script> if (!document.getElementById("paging")) { document.getElementById("pageNumber1").style.display = 'inline'; } </script>
  3. If the field is "Display Only", the value will be displayed around <span> tags. You can get the value by span tag and replace it. <script> var col = document.getElementsByTagName('span'); var x = col[1].innerHTML; // if the field is second "Display Only" field on that page col[1].innerHTML = x.slice(-4); </script>
  4. The parameter can be passed through URL. For example: www.site.com/page.html?parameter1=**** The value ***** can be received in a Caspio DataPage if the field receives value [@parameter1]. More details at: http://howto.caspio.com/parameters/receiving-parameters/
  5. It is a standard feature now. In a results page, the records can by sorted by any field in the table. You do not need to select the field to display it in the Wizard.
  6. Please try the following code in the footer of that DataPage: <script> function chk_fields(){ var chk1 = document.getElementById("InsertRecordFieldName1"); var chk2 = document.getElementById("InsertRecordFieldName2"); var chk3 = document.getElementById("InsertRecordFieldName3"); var chk4 = document.getElementById("InsertRecordFieldName4"); var chk5 = document.getElementById("InsertRecordFieldName5"); var chk6 = document.getElementById("InsertRecordFieldName6"); if ( chk1.checked == false && chk2.checked == false && chk3.checked == false && chk4.checked == false && chk5.checked == false && chk6.checked == false) { alert('check one checkbox'); return false; } } document.getElementById('caspioform').onsubmit=chk_fields; </script> Remember to replace the InsertRecordFieldNames.
  7. 1. Create a Virtual field, the destination can be redirected to the value of that Virtual field. 2. Use the following code in the Footer of your DataPages. The value of Virtual1 depends on the checkboxes : <script> function myFunction() { var x = document.getElementById("InsertRecordSearch1"); var y = document.getElementById("InsertRecordSearch2"); if ((x.checked == true) && (y.checked == false)){ document.getElementById("cbParamVirtual1").value = "http://www.google.com/";} else if ((x.checked == false) && (y.checked == true)){ document.getElementById("cbParamVirtual1").value = "http://www.yahoo.com/";} else if ((x.checked == false) && (y.checked == false)){ document.getElementById("cbParamVirtual1").value = "https://www.bings.com/";} else { document.getElementById("cbParamVirtual1").value = "https://www.home.com/";} } document.getElementById("caspioform").onsubmit=myFunction; </script> 3. You can configure what happens after the form is submitted. In the Destination and Triggers page, select Go to a new page as the destination and enter or insert the parameter name in Page URL which is [@Virtual1] in this case.
  8. Here are all the operations in Caspio Web Service API: http://bridge.caspio.net/ws/api.asmx You may use checkPassword operation. Please refer the Caspio Web Service API documentation - http://www.caspio.com/pdfs/Caspio-Bridge-Web-Service-API.pdf. You will also find code examples in this link - http://www.caspio.com/extend/platform-extensions/web-services.aspx
  9. Try the following code to get the day automatically if the date is selected from a submission form ======= Remember to change the element id "InsertRecordFieldNameofDate" and "InsertRecordFieldNameofDayName" <script> function myFunction() { var sub_date = document.getElementById("InsertRecordFieldNameofDate").value; var d = new Date(sub_date); var weekday=new Array(7); weekday[0]="Sunday"; weekday[1]="Monday"; weekday[2]="Tuesday"; weekday[3]="Wednesday"; weekday[4]="Thursday"; weekday[5]="Friday"; weekday[6]="Saturday"; var x = weekday[d.getDay()]; document.getElementById("InsertRecordFieldNameofDayName").value = x; } document.getElementById("InsertRecordFieldNameofDate").addEventListener("change", myFunction); </script>
  10. The image saved in the files Section is not possible accessed by public because Caspio account is secure. The public can only view the deployed DataPages. To get the URL of an image stored in Caspio, you have to create a DataPage which contains the file field in either results page or details page, and deploy the DataPage. It is not necessary to display the image in the Details page.
  11. DataPages is exported in compressed .ZIP archives (xml type). These DataPages can be imported into any Caspio Bridge account. It is internal use only, not readable. But the data (like table or view) is able to be exported in Microsoft Access, Excel, XML, or CSV.
  12. Non-geocoded addresses is accepted by Map Mashup Version 7. To use Pre-geocoded addresses is a recommendation, but not required. Geocoded addresses will be much faster for map loading.
  13. Yahoo shut down their map API support. You can try to use Map Mashup Version 7 http://howto.caspio.com/extensions/maps/map-mashup-instructions/map-mashup-version-7/
  14. The authenticated DataPages have been tested in Joomla with Flexi Custom Code plugin without any issue.
  15. Hi Walt, Both Embedded and iFrame deployment work fine in Joomla with Flexi Custom Code plugin. Please try to install Flexi Custom Code plug in Joomla. Hope this helps.
  16. It is not a standard feature. But you can create your own <table> <tr> <td>tags instead of using Sections. 1. Remove the Sections 2. Insert three HTML Blocks surrounding the fields //HTML Block 1 <table cellspacing="0" cellpadding="0"> <tr><td valign="top"> <table cellpadding="0" cellspacing="0"><tr><td> Field11 Field12 Field13 //HTML Block 2 </td></tr></table> </td> <td> <table cellspacing="0" cellpadding="0"><tr><td> Field21 Field22 Field23 //HTML Block 3 </td></tr></table></td></tr></table>
  17. If the data type is Text255 in the table, the sort will be 1, 10, 11, 2, 20, 3, 30... Because it sorts text alphabetically, and 1 is before 2. If the data type is Number in the table, the sort will be 1, 2, 3, 10, 11, 20, 30,...
  18. You can make the link to a specific position by using An anchor URL --points to an anchor within a page (like href="#top") 1. Add Header/Footer in the Configure Results Page Fields 2. Add <div> tags around Header and Footer For example: in Header <div id="anchorname"> in Footer </div> 3. Add JS code to point the Caspio page when results page is loaded. in Footer, after </div> tags <script> window.onload= function() { location.href="[@cbHostURL]#anchorname"; } </script> Please note the anchorname is the same as the id.
  19. The "upload file..." text is pre-defined by the browser and can't be changed. You can change it with a shot of CSS/JS. For example: 1. Insert a HTML block to add a text field and a button to make them like a file field: <tr><td style="width:140px;" class="cbFormLabel"><label>Logo</label> </td><td> <input type="text" class="cbFormTextField" id="f_file"><input type="button" value="Upload" class="file" onclick="InsertRecordfileField.click()"></td></tr> 2. Insert JS code in the Footer to hide real file field <script> document.getElementById("InsertRecordfileField").style.display ="none"; function fire() { document.getElementById("f_file").value = document.getElementById("InsertRecordfileField").value; } document.getElementById("InsertRecordfileField").onchange = fire; </script> css style class "cbFormLabel" and "cbFormTextField" only work in the direct link. If the DataPage is embedded into a page, the style will be broken. You can insert the correct style directly. For example: <td style="width:140px; color:blue; font-family:Verdana; font-size:13px;"><label>Logo</label> </td>
  20. You can check Caspio Developer Network at: http://developer.caspio.com/. If you are interested in a third party certified Caspio developer assist you, feel free to post your job at http://developer.caspio.com/jobs/.
  21. You have the option to apply an aggregate to the first level subgroup. If you apply totals and aggregations to your subgroup, the cell data for the subgroup will be appended before the label. In your case, it is "country of sale. But it is only for first level group. It is not a standard feature to apply aggregation to the second level group, as Product Name.
  22. The Form Elements of Update1 and Update2 should be Hidden in the Details Page. You can try this code in the Footer: If the data type of File1 and File2 is "Text(255)", "Number", or "Date/Time" in the table design <SCRIPT LANGUAGE="JavaScript"> function update1() { var File1Old = "[@field:File1]"; var File1New= document.getElementById("EditRecordFile1").value; if (File1Old !== File1New) document.getElementById("EditRecordUpdate1").value = "[@cbtimestamp]"; } function update2() { var File2Old = "[@field:File2]"; var File2New= document.getElementById("EditRecordFile2").value; if (File2Old !== File2New) document.getElementById("EditRecordUpdate2").value = "[@cbtimestamp]"; } function submit() { update1(); update2(); } document.getElementById("caspioform").onsubmit=submit; </SCRIPT> If the data type of File1 and File2 is "file" in the table <SCRIPT LANGUAGE="JavaScript"> function update1() { var File1New= document.getElementById("EditRecordUploadfile1").value; if (File1New) document.getElementById("EditRecordUpdate1").value = "[@cbtimestamp]"; } function update2() { var File2New= document.getElementById("EditRecordUploadfile2").value; if (File2New) document.getElementById("EditRecordUpdate2").value = "[@cbtimestamp]"; } function submit() { update1(); update2(); } document.getElementById("caspioform").onsubmit=submit; </SCRIPT>
  23. You can try to verify emails based on the SMTP server that is sending it and a reverse record (PTR) to the domain that claims to send the email. The "From" can be faked easily, but the PTR and the server that sends the email would only agree on valid settings and not on SPAM attempts. The possible IPs that they could get notification emails from Bridge is listed at: http://howto.caspio.com/automatic-emails/notification-emails/troubleshooting-notification-emails.html
  24. You can wrap the "Value already present" error message in the Localization with tags,and have JavaScript code in the DataPage to detect when the message is found in the DataPage, then open the login page. 1. Edit the Localization Edit Localization of this DataPage. Proceed to the Settings screen. Find the Forms/Details Pages section and select Messages. Element ID #151 is the "Value already present" message. Customize the HTML text by adding an extra div tag around the message. <div id="valueExist">Value already present</div> 2. Edit the Report DataPage Paste the following code into the Footer of the Configure Fields screen. Remember to change the "URL of the login page". <script> function load_Login_Page() { if (document.getElementById("valueExist")) window.location.href = "URL of the login page"; } window.onload=load_Login_Page; </script>
  25. If you want to receive the value in a field of submission form, the value can be got in javascript of page source code, and passed to Caspio form through document.getElementById. For example: <script type="text/javascript"> var firstValue= "<?php echo $first; ?>"; document.getElementById("InsertRecordFieldName").value = firstValue; </script>
  • Create New...