www.webdeveloper.com
Results 1 to 4 of 4

Thread: minterm/maxterm javascript

  1. #1
    Join Date
    Nov 2011
    Posts
    3

    Question minterm/maxterm javascript

    I am trying to generate an ajax form based on a database value of max and min years. At present i have the following.

    Code:
    function generatePurchaseFields(p, tld) {
    				new Ajax.Request('/control/?page=tldmaxyears&p=' + p, {
    					method: 'get',
    	  				onSuccess: function(transport) {
    						var maxyears = transport.headerJSON.years.maxterm;
    						var minyears = transport.headerJSON.years.minterm;
    					}
    				});
    				
    				var fields = '<select name="years">' +
    						'<option value="' + minyears + '">minyears Year</option>' +
    						
    					'</select>';
    					return fields;
    			}
    What I am struggling with is the logic to say if minyears is more than 1 (string in option needs to say years), then add in every year between min and max as additional options.

    My brain has been melting with this for a few days now, time to throw in the towel have a redbull and ask for some help.

    Kind thanks in advance.

    PodMan99

  2. #2
    Join Date
    Mar 2005
    Location
    Behind you...
    Posts
    1,159
    I can't say I'm particularly familiar with JSON, although I doubt that'll affect the necessary code you need as it only pertains to the output and formatting of a string.

    There are likely many other ways of doing this, and some may be more streamlined by my solution would be:
    Code:
    var fields = '<select name="years"><option value="' + minyears + '">' + minyears;
    if(minyears == 1) {
      fields += ' Year</option></select>';
    } else {
      fields += ' Years</option></select>';
    }
    return fields;
    "Given billions of tries, could a spilled bottle of ink ever fall into the words of Shakespeare?"

  3. #3
    Join Date
    Nov 2011
    Posts
    3
    I think im similar to your update but no joy


    The years are comming out of a JSON response on /control/?page=tldmaxyears&domain=' + dom

    which simply responds with an headder of

    X-JSON:{"years":{"minterm":"2","maxterm":"10"}}

    Ive been working on it some more, but no output.
    Code:
    var domains = [];
    PHP/HTML injects domains into my array with
    Code:
    window.domains.push(\"$_POST[d].$row[tld]\");
    then I do the following once my form has loaded. to populate the values with answers. more detail may shed some light on where I have gone wrong.

    Code:
    			var maxyears;
    			var minyears;
    			var rows = '';
    
    for (var domain in window.domains) {
    					runme(window.domains[domain]);
    			}
    
    function runme(dom) {
    	new Ajax.Request('/control/checkdomain.php?domain=' + dom, {
    	  method: 'get',
    		asynchronous: true,
    	  
    	  onSuccess: function(transport) {
    	    if (transport.responseText.match(/1/)) {
    	      $(dom).update(generatePurchaseFields(dom, 'co.uk')).setStyle({ background: '#dfd' });
    	    } else {
    	      $(dom).update('Not Available.').setStyle({ background: '#fdd' });
    	    }
    	  }
    	});
    				
    			}
    			
    			function generatePurchaseFields(dom) {
    			
    				new Ajax.Request('/control/?page=tldmaxyears&domain=' + dom, {
    					method: 'get',
    					asynchronous: false,
    	  				onSuccess: function(transport) {
    						window.maxyears = transport.headerJSON.years.maxterm;
    						window.minyears = transport.headerJSON.years.minterm;
    					}
    				});
    				var maxyears = window.maxyears;
    				var minyears = window.minyears;
    				
    				i=minyears;
    				
    				var rows = '';
    				console.debug(i + maxyears);
    				for (i=i;i<=maxyears;i++) {
    					console.debug('<option value="' + i + '">' + i + ' Year</option>');
    					rows += '<option value="' + i + '">' + i + ' Year</option>';
    				}
    				
    				var fields = '<input type="checkbox" value="' + dom + '" name="domain[]" />' +
    					'<select name="years">' +
    						rows +
    					'</select>';
    					return fields;
    			}

  4. #4
    Join Date
    Mar 2005
    Location
    Behind you...
    Posts
    1,159
    At this point I'm not sure I understand what issue you are having. If the problem is just to add logic to determine if years should be plural or singular, it is again just a simple if/else statement like I wrote initially or, using your new and more complete code, below:
    Code:
    			var maxyears;
    			var minyears;
    			var rows = '';
    
    for (var domain in window.domains) {
    					runme(window.domains[domain]);
    			}
    
    function runme(dom) {
    	new Ajax.Request('/control/checkdomain.php?domain=' + dom, {
    	  method: 'get',
    		asynchronous: true,
    	  
    	  onSuccess: function(transport) {
    	    if (transport.responseText.match(/1/)) {
    	      $(dom).update(generatePurchaseFields(dom, 'co.uk')).setStyle({ background: '#dfd' });
    	    } else {
    	      $(dom).update('Not Available.').setStyle({ background: '#fdd' });
    	    }
    	  }
    	});
    				
    			}
    			
    			function generatePurchaseFields(dom) {
    			
    				new Ajax.Request('/control/?page=tldmaxyears&domain=' + dom, {
    					method: 'get',
    					asynchronous: false,
    	  				onSuccess: function(transport) {
    						window.maxyears = transport.headerJSON.years.maxterm;
    						window.minyears = transport.headerJSON.years.minterm;
    					}
    				});
    				var maxyears = window.maxyears;
    				var minyears = window.minyears;
    
    				var rows = '';
    				for (var i = minyears; i <= maxyears; i++) {
    					if(i == 1) {
    					  rows += '<option value="' + i + '">' + i + ' Year</option>';
    					} else {
    					  rows += '<option value="' + i + '">' + i + ' Years</option>';
    					}
    				}
    				
    				var fields = '<input type="checkbox" value="' + dom + '" name="domain[]" />' +
    					'<select name="years">' +
    						rows +
    					'</select>';
    					return fields;
    			}
    Again, if I understood your problem then the simple addition of my if/else statement will allow the value of 1 to display as a singular year while the other values will show as plural years.
    "Given billions of tries, could a spilled bottle of ink ever fall into the words of Shakespeare?"

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.12255 seconds
  • Memory Usage 2,877KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (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)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (6)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (4)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (73):
  • init_startup
  • friendlyurl_resolve_class
  • 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_postinfo_query
  • fetch_postinfo
  • 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
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • 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
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates