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.
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:
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?"
Bookmarks