ianhaney Posted December 20, 2015 Share Posted December 20, 2015 Hi I have a invoice script that I got from the following link https://css-tricks.com/editable-invoice-v2/ I am trying to get the invoice stored in a mysql database which it is doing but the prices are being added into the database as 0.00 and found out that it is because it just needs to be numeric but the javascript is adding a £ of the price I tried removing £ from the javascript code but it makes it appear on the page as NaN as the javascript updates the totals itself Is there a way to remove the £ from the javascript so the price gets stored correctly in the mysql database? below is the coding from the javascript file function print_today() { // *********************************************** // AUTHOR: WWW.CGISCRIPT.NET, LLC // URL: http://www.cgiscript.net // Use the script, just leave this message intact. // Download your FREE CGI/Perl Scripts today! // ( http://www.cgiscript.net/scripts.htm ) // *********************************************** var now = new Date(); var months = new Array('January','February','March','April','May','June','July','August','September','October','November','December'); var date = ((now.getDate()<10) ? "0" : "")+ now.getDate(); function fourdigits(number) { return (number < 1000) ? number + 1900 : number; } var today = months[now.getMonth()] + " " + date + ", " + (fourdigits(now.getYear())); return today; } // from http://www.mediacollege.com/internet/javascript/number/round.html function roundNumber(number,decimals) { var newString;// The new rounded number decimals = Number(decimals); if (decimals < 1) { newString = (Math.round(number)).toString(); } else { var numString = number.toString(); if (numString.lastIndexOf(".") == -1) {// If there is no decimal point numString += ".";// give it one at the end } var cutoff = numString.lastIndexOf(".") + decimals;// The point at which to truncate the number var d1 = Number(numString.substring(cutoff,cutoff+1));// The value of the last decimal place that we'll end up with var d2 = Number(numString.substring(cutoff+1,cutoff+2));// The next decimal, after the last one we want if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point while (cutoff > 0 && (d1 == 9 || isNaN(d1))) { if (d1 != ".") { cutoff -= 1; d1 = Number(numString.substring(cutoff,cutoff+1)); } else { cutoff -= 1; } } } d1 += 1; } if (d1 == 10) { numString = numString.substring(0, numString.lastIndexOf(".")); var roundedNum = Number(numString) + 1; newString = roundedNum.toString() + '.'; } else { newString = numString.substring(0,cutoff) + d1.toString(); } } if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string newString += "."; } var decs = (newString.substring(newString.lastIndexOf(".")+1)).length; for(var i=0;i<decimals-decs;i++) newString += "0"; //var newNumber = Number(newString);// make it a number if you like return newString; // Output the result to the form field (change for your purposes) } function update_total() { var total = 0; $('.price').each(function(i){ price = $(this).html().replace("£",""); if (!isNaN(price)) total += Number(price); }); total = roundNumber(total,2); $('#subtotal').html("£"+total); $('#total').html("£"+total); update_balance(); } function update_balance() { var due = $("#total").html().replace("£","") - $("#paid").val().replace("£",""); due = roundNumber(due,2); $('.due').html("£"+due); } function update_price() { var row = $(this).parents('.item-row'); var price = row.find('.cost').val().replace("£","") * row.find('.qty').val(); price = roundNumber(price,2); isNaN(price) ? row.find('.price').html("N/A") : row.find('.price').html("£"+price); update_total(); } function bind() { $(".cost").blur(update_price); $(".qty").blur(update_price); } $(document).ready(function() { $('input').click(function(){ $(this).select(); }); $("#paid").blur(update_balance); $("#addrow").click(function(){ $(".item-row:last").after('<tr class="item-row"><td class="item-name"><div class="delete-wpr"><textarea>Item Name</textarea><a class="delete" href="javascript:;" title="Remove row">X</a></div></td><td class="description"><textarea name="description">Description</textarea></td><td><textarea class="cost" name="unit_cost">£0</textarea></td><td><textarea class="qty" name="qty">1</textarea></td><td><span class="price"><textarea class="price" name="price">£0</textarea></span></td></tr>'); if ($(".delete").length > 0) $(".delete").show(); bind(); }); bind(); $(".delete").live('click',function(){ $(this).parents('.item-row').remove(); update_total(); if ($(".delete").length < 2) $(".delete").hide(); }); $("#cancel-logo").click(function(){ $("#logo").removeClass('edit'); }); $("#delete-logo").click(function(){ $("#logo").remove(); }); $("#change-logo").click(function(){ $("#logo").addClass('edit'); $("#imageloc").val($("#image").attr('src')); $("#image").select(); }); $("#save-logo").click(function(){ $("#image").attr('src',$("#imageloc").val()); $("#logo").removeClass('edit'); }); $("#date").val(print_today()); }); Thank you in advance Ian I can paste the HTML if needed Quote Link to comment https://forums.phpfreaks.com/topic/299895-javascript-coding-issue-with-%C2%A3-symbol/ Share on other sites More sharing options...
mac_gyver Posted December 20, 2015 Share Posted December 20, 2015 we are not here to modify someone else's code to do what you want. if you cannot make this change yourself, ask the Author of the software to do it or find another way. you should also not be using values calculated in the client, on the server, even if you trust the person who is filling in the form on the client. you should only display client-side calculated values, as a convenience for the user, but your server-side code should do any calculation based on the original data that's stored on the server. you should also not store calculated values in a database table. this is derived information and should be calculated when needed. Quote Link to comment https://forums.phpfreaks.com/topic/299895-javascript-coding-issue-with-%C2%A3-symbol/#findComment-1528306 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.