Kevinnaia
11-03-2003, 04:26 PM
I have this piece of javascript code, and its supposed to be charging $0.10 for each character. The problem is that it is counting spaces as characters. I don't really know javascript, so I need some help. The chunk of code is below (it's integrated into a PHP script)
if($engra_option != "3"){
echo"<script language=\"javascript\">
function round(number,X) {
X = (!X ? 2 : X);
return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}
function cent(amount) {
amount -= 0;
return (amount == Math.floor(amount)) ? amount + '.00' : ( (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}
function change_line(line_point, text, repeat){
if(document.all){
eval(line_point+\".innerHTML= text\");
}
else {
eval(\"document.\"+line_point+\".innerHTML= text\");
}
repeat = (!repeat ? 0 : repeat);
if(!repeat) get_char();
}
function get_char(){
if(document.all) var doc = 'document.all';
else var doc = 'document';";
if($engra_option == "1") echo"
char = eval(doc+\".master_line_1.value.length\") + eval(doc+\".master_line_2.value.length\");
extra = 0.00;
for(i=0; i < (char); i++){
extra = extra + 0.10;
}
extra = round(extra, 2);
extra = cent(extra);
eval(doc+\".master_max_disp.value = char\");
eval(doc+\".master_max.value = char\");
eval(doc+\".master_extra_disp.value = extra\");
eval(doc+\".master_extra.value = extra\");";
for($i=1; $i <= $quan && $engra_option == 2; $i++){
echo"char = eval(doc+\".plate".$i."_line_1.value.length\") + eval(doc+\".plate".$i."_line_2.value.length\");
extra = 0.00;
for(i=0; i < (char); i++){
extra = extra + 0.10;
}
extra = round(extra, 2);
extra = cent(extra);
eval(doc+\".plate".$i."_max_disp.value = char\");
eval(doc+\".plate".$i."_max.value = char\");
eval(doc+\".plate".$i."_extra_disp.value = extra\");
eval(doc+\".plate".$i."_extra.value = extra\");";
echo"for(i=1; i <= 2; i++){
repeat = eval(doc+\".line_\"+i+\"_repeat.checked\");
if(repeat){
eval(doc+\".plate".$i."_line_\"+i+\".value = \"+doc+\".master_line_\"+i+\".value\");
change_line('plate".$i."_line_div_'+i, eval(doc+\".plate".$i."_line_\"+i+\".value\"), 1);
}
}";
}
if($engra_option != "1") echo"
extra_done = 0;
for(i=1; i <= ".$quan."; i++){
temp = eval(doc+\".plate\"+i+\"_extra.value\");
extra_done = eval(temp)+eval(extra_done);
temp = 0;
}
extra_done = round(extra_done, 2);
extra_done = cent(extra_done);
eval(doc+\".master_extra.value = \"+extra_done);";
echo"}
</script>";
echo $la_view_engra_desc;
echo"<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"".$colour_2."\" width=\"90%\" align=\"center\">
<tr>
<th valign=\"top\" colspan=\"3\">".$la_view_engra_master."</th>
</tr><tr>
<td width=\"50%\" valign=\"top\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td width=\"50%\" valign=\"top\">Line 1: <input type=\"text\" name=\"master_line_1\" size=\"30\" value=\"\" onfocus=\"change_line('master_line_div_1',this.value)\" onkeyup=\"change_line('master_line_div_1',this.value)\" maxlength=\"40\"></td></tr>
<tr><td width=\"50%\" valign=\"top\">Line 2: <input type=\"text\" name=\"master_line_2\" size=\"30\" value=\"\" onfocus=\"change_line('master_line_div_2',this.value)\" onkeyup=\"change_line('master_line_div_2',this.value)\" maxlength=\"40\"></td></tr>
</table>
</td>";
if($engra_option == "2") echo"<td width=\"5%\" valign=\"top\" bgcolor=\"".$colour_2."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">
<tr><td width=\"100%\" valign=\"top\" height=\"27\" nowrap><input type=\"checkbox\" name=\"line_1_repeat\" value=\"checked\" title=\"Repeat/Changes\" onclick=\"get_char();\" onfocus=\"get_char();\"></td></tr>
<tr><td width=\"100%\" valign=\"top\" height=\"25\" nowrap><input type=\"checkbox\" name=\"line_2_repeat\" value=\"checked\" title=\"Repeat/Changes\" onclick=\"get_char();\" onfocus=\"get_char();\"></td></tr>
</table>
</td>";
echo"<td width=\"45%\" valign=\"center\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"".$colour_2."\" width=\"100%\">
<tr><td width=\"50%\" valign=\"top\" nowrap>
<div id=\"master_line_div_1\"> </div>
<div id=\"master_line_div_2\"> </div>
</td></tr>
</table>
</td>
</tr>"; if($engra_option == "1") echo"<tr>
<td valign=\"top\">Max Chars: <input type=\"text\" name=\"master_max_disp\" size=\"5\" value=\"0\"></td>
<td valign=\"top\" colspan=\"2\">Extra Cost: <input type=\"text\" name=\"master_extra_disp\" size=\"5\" value=\"0.00\"> $0.10</td>
</tr>";
echo"</table><br /><br />";
echo" <input type=\"hidden\" name=\"master_max\" value=\"0\">
<input type=\"hidden\" name=\"master_extra\" value=\"0.00\">";
if($engra_option == "2") echo" <input type=\"hidden\" name=\"master_max_disp\" value=\"0\">
<input type=\"hidden\" name=\"master_extra_disp\" value=\"0.00\">";
for($i=1; $i <= $quan && $engra_option == 2; $i++){
echo"<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"".$colour_2."\" width=\"90%\" align=\"center\">
<tr>
<th valign=\"top\" colspan=\"2\">Individual Plate ".$i."</th>
</tr><tr>
<td width=\"50%\" valign=\"top\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td width=\"50%\" valign=\"top\">Line 1: <input type=\"text\" name=\"plate".$i."_line_1\" size=\"30\" value=\"\" onfocus=\"change_line('plate".$i."_line_div_1',this.value)\" onkeyup=\"change_line('plate".$i."_line_div_1',this.value)\" maxlength=\"40\"></td></tr>
<tr><td width=\"50%\" valign=\"top\">Line 2: <input type=\"text\" name=\"plate".$i."_line_2\" size=\"30\" value=\"\" onfocus=\"change_line('plate".$i."_line_div_2',this.value)\" onkeyup=\"change_line('plate".$i."_line_div_2',this.value)\" maxlength=\"40\"></td></tr>
</table>
</td>
<td width=\"50%\" valign=\"center\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"".$colour_2."\" width=\"100%\">
<tr><td width=\"50%\" valign=\"top\" nowrap>
<div id=\"plate".$i."_line_div_1\"> </div>
<div id=\"plate".$i."_line_div_2\"> </div>
</td></tr>
</table>
</td>
</tr><tr>
<td valign=\"top\">Max Chars: <input type=\"text\" name=\"plate".$i."_max_disp\" size=\"5\" value=\"0\"></td>
<td valign=\"top\">Extra Cost: <input type=\"text\" name=\"plate".$i."_extra_disp\" size=\"5\" value=\"0.00\"> $0.10</td>
</tr>
</table><br /><br />";
echo" <input type=\"hidden\" name=\"plate".$i."_max\" value=\"0\">
<input type=\"hidden\" name=\"plate".$i."_extra\" value=\"0.00\">";
echo" <input type=\"hidden\" name=\"engra_option\" value=\"$engra_option\">";
}
}
echo"<input type=\"hidden\" name=\"quan\" value=\"".$quan."\">
<table width=\"94\" height=\"24\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">
<tr valign=\"middle\">
<td height=\"24\" width=\"94\" background=\"images/white_button.gif\" valign=\"middle\" align=\"center\" style='cursor:hand;' onClick='get_char();add_product.submit();'><a href='#'><font class=\"wht_btn\">$la_add_to_basket</font></a></td></form>
</tr>
</table>";
}
} //end if there is a result
}
Thanks,
Kevin
if($engra_option != "3"){
echo"<script language=\"javascript\">
function round(number,X) {
X = (!X ? 2 : X);
return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}
function cent(amount) {
amount -= 0;
return (amount == Math.floor(amount)) ? amount + '.00' : ( (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}
function change_line(line_point, text, repeat){
if(document.all){
eval(line_point+\".innerHTML= text\");
}
else {
eval(\"document.\"+line_point+\".innerHTML= text\");
}
repeat = (!repeat ? 0 : repeat);
if(!repeat) get_char();
}
function get_char(){
if(document.all) var doc = 'document.all';
else var doc = 'document';";
if($engra_option == "1") echo"
char = eval(doc+\".master_line_1.value.length\") + eval(doc+\".master_line_2.value.length\");
extra = 0.00;
for(i=0; i < (char); i++){
extra = extra + 0.10;
}
extra = round(extra, 2);
extra = cent(extra);
eval(doc+\".master_max_disp.value = char\");
eval(doc+\".master_max.value = char\");
eval(doc+\".master_extra_disp.value = extra\");
eval(doc+\".master_extra.value = extra\");";
for($i=1; $i <= $quan && $engra_option == 2; $i++){
echo"char = eval(doc+\".plate".$i."_line_1.value.length\") + eval(doc+\".plate".$i."_line_2.value.length\");
extra = 0.00;
for(i=0; i < (char); i++){
extra = extra + 0.10;
}
extra = round(extra, 2);
extra = cent(extra);
eval(doc+\".plate".$i."_max_disp.value = char\");
eval(doc+\".plate".$i."_max.value = char\");
eval(doc+\".plate".$i."_extra_disp.value = extra\");
eval(doc+\".plate".$i."_extra.value = extra\");";
echo"for(i=1; i <= 2; i++){
repeat = eval(doc+\".line_\"+i+\"_repeat.checked\");
if(repeat){
eval(doc+\".plate".$i."_line_\"+i+\".value = \"+doc+\".master_line_\"+i+\".value\");
change_line('plate".$i."_line_div_'+i, eval(doc+\".plate".$i."_line_\"+i+\".value\"), 1);
}
}";
}
if($engra_option != "1") echo"
extra_done = 0;
for(i=1; i <= ".$quan."; i++){
temp = eval(doc+\".plate\"+i+\"_extra.value\");
extra_done = eval(temp)+eval(extra_done);
temp = 0;
}
extra_done = round(extra_done, 2);
extra_done = cent(extra_done);
eval(doc+\".master_extra.value = \"+extra_done);";
echo"}
</script>";
echo $la_view_engra_desc;
echo"<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"".$colour_2."\" width=\"90%\" align=\"center\">
<tr>
<th valign=\"top\" colspan=\"3\">".$la_view_engra_master."</th>
</tr><tr>
<td width=\"50%\" valign=\"top\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td width=\"50%\" valign=\"top\">Line 1: <input type=\"text\" name=\"master_line_1\" size=\"30\" value=\"\" onfocus=\"change_line('master_line_div_1',this.value)\" onkeyup=\"change_line('master_line_div_1',this.value)\" maxlength=\"40\"></td></tr>
<tr><td width=\"50%\" valign=\"top\">Line 2: <input type=\"text\" name=\"master_line_2\" size=\"30\" value=\"\" onfocus=\"change_line('master_line_div_2',this.value)\" onkeyup=\"change_line('master_line_div_2',this.value)\" maxlength=\"40\"></td></tr>
</table>
</td>";
if($engra_option == "2") echo"<td width=\"5%\" valign=\"top\" bgcolor=\"".$colour_2."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">
<tr><td width=\"100%\" valign=\"top\" height=\"27\" nowrap><input type=\"checkbox\" name=\"line_1_repeat\" value=\"checked\" title=\"Repeat/Changes\" onclick=\"get_char();\" onfocus=\"get_char();\"></td></tr>
<tr><td width=\"100%\" valign=\"top\" height=\"25\" nowrap><input type=\"checkbox\" name=\"line_2_repeat\" value=\"checked\" title=\"Repeat/Changes\" onclick=\"get_char();\" onfocus=\"get_char();\"></td></tr>
</table>
</td>";
echo"<td width=\"45%\" valign=\"center\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"".$colour_2."\" width=\"100%\">
<tr><td width=\"50%\" valign=\"top\" nowrap>
<div id=\"master_line_div_1\"> </div>
<div id=\"master_line_div_2\"> </div>
</td></tr>
</table>
</td>
</tr>"; if($engra_option == "1") echo"<tr>
<td valign=\"top\">Max Chars: <input type=\"text\" name=\"master_max_disp\" size=\"5\" value=\"0\"></td>
<td valign=\"top\" colspan=\"2\">Extra Cost: <input type=\"text\" name=\"master_extra_disp\" size=\"5\" value=\"0.00\"> $0.10</td>
</tr>";
echo"</table><br /><br />";
echo" <input type=\"hidden\" name=\"master_max\" value=\"0\">
<input type=\"hidden\" name=\"master_extra\" value=\"0.00\">";
if($engra_option == "2") echo" <input type=\"hidden\" name=\"master_max_disp\" value=\"0\">
<input type=\"hidden\" name=\"master_extra_disp\" value=\"0.00\">";
for($i=1; $i <= $quan && $engra_option == 2; $i++){
echo"<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"".$colour_2."\" width=\"90%\" align=\"center\">
<tr>
<th valign=\"top\" colspan=\"2\">Individual Plate ".$i."</th>
</tr><tr>
<td width=\"50%\" valign=\"top\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td width=\"50%\" valign=\"top\">Line 1: <input type=\"text\" name=\"plate".$i."_line_1\" size=\"30\" value=\"\" onfocus=\"change_line('plate".$i."_line_div_1',this.value)\" onkeyup=\"change_line('plate".$i."_line_div_1',this.value)\" maxlength=\"40\"></td></tr>
<tr><td width=\"50%\" valign=\"top\">Line 2: <input type=\"text\" name=\"plate".$i."_line_2\" size=\"30\" value=\"\" onfocus=\"change_line('plate".$i."_line_div_2',this.value)\" onkeyup=\"change_line('plate".$i."_line_div_2',this.value)\" maxlength=\"40\"></td></tr>
</table>
</td>
<td width=\"50%\" valign=\"center\" bgcolor=\"".$colour_1."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"".$colour_2."\" width=\"100%\">
<tr><td width=\"50%\" valign=\"top\" nowrap>
<div id=\"plate".$i."_line_div_1\"> </div>
<div id=\"plate".$i."_line_div_2\"> </div>
</td></tr>
</table>
</td>
</tr><tr>
<td valign=\"top\">Max Chars: <input type=\"text\" name=\"plate".$i."_max_disp\" size=\"5\" value=\"0\"></td>
<td valign=\"top\">Extra Cost: <input type=\"text\" name=\"plate".$i."_extra_disp\" size=\"5\" value=\"0.00\"> $0.10</td>
</tr>
</table><br /><br />";
echo" <input type=\"hidden\" name=\"plate".$i."_max\" value=\"0\">
<input type=\"hidden\" name=\"plate".$i."_extra\" value=\"0.00\">";
echo" <input type=\"hidden\" name=\"engra_option\" value=\"$engra_option\">";
}
}
echo"<input type=\"hidden\" name=\"quan\" value=\"".$quan."\">
<table width=\"94\" height=\"24\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"right\">
<tr valign=\"middle\">
<td height=\"24\" width=\"94\" background=\"images/white_button.gif\" valign=\"middle\" align=\"center\" style='cursor:hand;' onClick='get_char();add_product.submit();'><a href='#'><font class=\"wht_btn\">$la_add_to_basket</font></a></td></form>
</tr>
</table>";
}
} //end if there is a result
}
Thanks,
Kevin