# Undefined variables in a random number function

Printable View

• 01-08-2009, 03:22 PM
AliHurworth
Undefined variables in a random number function
Evening all.

I have a problem with some undefined variables ina function.

Although there are comments in the code below, this is how it works.
• When the user presses the button, a ranom number is generated
• This numer is converted to a 1 or 0
• this updates the running totals
• the totals are displayed in the table

The problem is that although it loads properly, I can't get the variable to update the table - I just getundefined.

Here's the code:
Code:

```<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Teabag calculator</title> <script language="javascript" type="text/javascript"> i=0; var total=80; var single=0; var dbl=80; var i=0; function maketea() { document.getElementById('tries').innerHTML=i.value; var randomnumber=Math.floor(Math.random()*2); if (randomnumber==0) //low, ie single /*if a single bag is pulled, the doubles are unaffected, the singles fall by one the total number falls by one, and the number of tries increases by one*/         {                 single=single-1;                 total=dbl+single;                 i=i+1                 document.getElementById('tries').innerHTML=i.value;                 document.getElementById('doubles').innerHTML=dbl.value;                 document.getElementById('singles').innerHTML=single.value;                 document.getElementById('total').innerHTML=total.value;                 document.getElementById('doubles').style.color="black";                 document.getElementById('singles').style.color="red"         } else if(randomnumber==1) //high, ie double /*if a double is pulled, the doubles fall by one, the singles increase by one, thetotal number stays the same and the tries goes up*/         {                 dbl=dbl-1;                 single=single+1;                 total=dbl+single;                 i=i+1;                 document.getElementById('tries').innerHTML=i.value;                 document.getElementById('doubles').innerHTML=dbl.value;                 document.getElementById('singles').innerHTML=single.value;                 document.getElementById('total').innerHTML=total.value;                 document.getElementById('singles').style.color="black";                 document.getElementById('doubles').style.color="red";         } }; </script> <style type="text/css"> <!-- .style1 {font-size: large} --> </style> </head> <body> This page simulates the "Dad problem", as illustrated on <a href="http://answers.yahoo.com/question/index;_ylt=AvyknayS8m5RMuoYpmoj_lPsy6IX;_ylv=3?qid=20090106022211AAr5W7Q">Yahoo! Answers</a>. <hr /> <INPUT TYPE="button" NAME="myButton" VALUE="Make the tea!" onClick="maketea()"> <table width="125" border="0" cellspacing="0" cellpadding="0">   <caption align="top">   <span class="style1">In the box</span>   </caption>     <tr>     <td>Number of cups made</td>     <td>Doubles left</td>     <td>Singles left</td>     <td>Total in the box</td>   </tr>   <tr>     <td id="tries">&nbsp;     </td>     <td id="doubles">80</td>     <td id="singles">&nbsp;</td>     <td id="total">80</td>   </tr> </table> </body> </html>```
Can anyone help?
• 01-08-2009, 03:31 PM
TheBearMay
Remove the .value on JS variables:
HTML Code:

```<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Teabag calculator</title> <script language="javascript" type="text/javascript"> i=0; var total=80; var single=0; var dbl=80; var i=0; function maketea() { document.getElementById('tries').innerHTML=i.value; var randomnumber=Math.floor(Math.random()*2); if (randomnumber==0) //low, ie single /*if a single bag is pulled, the doubles are unaffected, the singles fall by one the total number falls by one, and the number of tries increases by one*/         {                 single=single-1;                 total=dbl+single;                 i=i+1                 document.getElementById('tries').innerHTML=i;                 document.getElementById('doubles').innerHTML=dbl;                 document.getElementById('singles').innerHTML=single;                 document.getElementById('total').innerHTML=total;                 document.getElementById('doubles').style.color="black";                 document.getElementById('singles').style.color="red"         } else if(randomnumber==1) //high, ie double /*if a double is pulled, the doubles fall by one, the singles increase by one, thetotal number stays the same and the tries goes up*/         {                 dbl=dbl-1;                 single=single+1;                 total=dbl+single;                 i=i+1;                 document.getElementById('tries').innerHTML=i;                 document.getElementById('doubles').innerHTML=dbl;                 document.getElementById('singles').innerHTML=single;                 document.getElementById('total').innerHTML=total;                 document.getElementById('singles').style.color="black";                 document.getElementById('doubles').style.color="red";         } }; </script> <style type="text/css"> <!-- .style1 {font-size: large} --> </style> </head> <body> This page simulates the "Dad problem", as illustrated on <a href="http://answers.yahoo.com/question/index;_ylt=AvyknayS8m5RMuoYpmoj_lPsy6IX;_ylv=3?qid=20090106022211AAr5W7Q">Yahoo! Answers</a>. <hr /> <INPUT TYPE="button" NAME="myButton" VALUE="Make the tea!" onClick="maketea()"> <table width="125" border="0" cellspacing="0" cellpadding="0">   <caption align="top">   <span class="style1">In the box</span>   </caption>     <tr>     <td>Number of cups made</td>     <td>Doubles left</td>     <td>Singles left</td>     <td>Total in the box</td>   </tr>   <tr>     <td id="tries">&nbsp;     </td>     <td id="doubles">80</td>     <td id="singles">&nbsp;</td>     <td id="total">80</td>   </tr> </table> </body> </html>```
• 01-08-2009, 03:44 PM
JMRKER
It's just not fair that "TheBearMay" types faster than me! :)
• 01-08-2009, 03:53 PM
TheBearMay
Lol :D
• 01-08-2009, 04:13 PM
AliHurworth
Thank-you for your quick and accurate reply!

## X vBulletin 4.2.2 Debug Information

• Page Generation 0.13648 seconds
• Memory Usage 2,385KB
• Queries Executed 11 (?)
More Information
Template Usage (21):
• (1)ad_footer_end
• (1)ad_footer_start
• (1)ad_global_above_footer
• (1)ad_global_below_navbar
• (1)ad_global_header1
• (1)ad_global_header2
• (1)ad_navbar_below
• (1)bbcode_code_printable
• (1)bbcode_html_printable
• (1)footer
• (1)gobutton
• (1)header
• (1)headinclude
• (1)headinclude_bottom
• (1)navbar_moderation
• (1)navbar_noticebit
• (2)option
• (1)printthread
• (5)printthreadbit
• (1)spacer_close
• (1)spacer_open

Phrase Groups Available (3):
• global
• postbit
• showthread
Included Files (19):
• ./printthread.php
• ./global.php
• ./includes/class_bootstrap.php
• ./includes/init.php
• ./includes/class_core.php
• ./includes/config.php
• ./includes/functions.php
• ./includes/functions_navigation.php
• ./includes/class_friendly_url.php
• ./includes/class_hook.php
• ./includes/class_bootstrap_framework.php
• ./vb/vb.php
• ./vb/phrase.php
• ./includes/functions_facebook.php
• ./includes/functions_calendar.php
• ./includes/class_bbcode_alt.php
• ./includes/class_bbcode.php
• ./includes/functions_bigthree.php
• ./includes/functions_notice.php

Hooks Called (41):
• init_startup
• init_startup_session_setup_start
• database_pre_fetch_array
• database_post_fetch_array
• init_startup_session_setup_complete
• global_bootstrap_init_start
• global_bootstrap_init_complete
• cache_permissions
• fetch_threadinfo_query
• fetch_threadinfo
• fetch_foruminfo
• load_show_variables
• load_forum_show_variables
• global_state_check
• global_bootstrap_complete
• global_start
• style_fetch
• global_setup_complete
• printthread_start
• bbcode_fetch_tags
• bbcode_create
• bbcode_parse_start
• cache_templates
• cache_templates_process
• template_register_var
• template_render_output
• fetch_template_start
• fetch_template_complete
• parse_templates
• fetch_musername
• notices_check_start
• notices_noticebit
• friendlyurl_resolve_class
• friendlyurl_clean_fragment
• friendlyurl_geturl
• process_templates_complete
• bbcode_parse_complete_precache
• bbcode_parse_complete
• printthread_post
• printthread_complete
• page_templates