I am using the jquery post function in my template to call a function
in my controller. I am sending some data to the controller. The data
comes into the controller with a u' ' around each data item. I do
not want the u' 's. Is there an easy way to get rid of them. I do
not want to have to write a bunch of parsing code to remove them if I
do not have to.
Here is the code in the html template file:
function get_selected_issues() {
var data_ids1 = $('#sortable1').sortable('toArray');
var num_elements1 = data_ids1.length;
var data_ids2 = $('#sortable2').sortable('toArray');
var num_elements2 = data_ids2.length;
// Match any number of characters followed by an _
// then 0 or 1 digits followed by 1 digit at the
// end of the string
var regExp = /_\d?\d$/;
var pos = 0
var index = ""
// Extract the '_num' from the data_ids1
for (i=0; i < num_elements1; i++)
{
var id_string1 = data_ids1[i];
pos = id_string1.search(regExp);
index = id_string1.substr(pos+1); // Add one to momve past the
underscore
//id_string1 = id_string1.replace(regExp, "");
//data_ids1[i] = id_string1;
data_ids1[i] = index;
}
pos = 0
index = ""
// Extract the '_num' from the data_ids1
for (i=0; i < num_elements2; i++)
{
var id_string2 = data_ids2[i];
pos = id_string2.search(regExp);
index = id_string2.substr(pos+1); // Add one to momve past the
underscore
//id_string2 = id_string2.replace(regExp, "");
//data_ids2[i] = id_string2;
data_ids2[i] = index;
}
$.post("SaveSelectedIssues",{ issues1 : data_ids1, issues2 :
data_ids2 },
function(data2) {
// Redirect to the Review/Submit page
location = data2; // Data contains the url of the Rivew/
Submit page
}); // Adding "json" does not work. It juse casuse the app to
hang. No idea why.
}
Here is the code in the controller:
@expose()
def SaveSelectedIssues(self, *args, **kw):
message = 'All is well that ends well'
try:
available_issues = str(kw['issues1']) # From the form
length1 = len(available_issues)
if length1 > 0:
first_char1 = available_issues[0] # Get the first char
in the string
last_char1 = available_issues[-1] # Get the last char
in the string
working_data1 = ''
if ((first_char1 == '[') and (last_char1 == ']')):
working_data1 = available_issues[1:-1]
elif ((first_char1 == '[') and (last_char1 != ']')):
working_data1 = available_issues[1:]
elif ((first_char1 != '[') and (last_char1 == ']')):
working_data1 = available_issues[:-1]
else:
working_data1 = available_issues
# This does not work
#available_issues_list_json = json.JSONDecoder().decode
(available_issues)
available_issues_list = working_data1.split(',')
# Remove the u, the first ', and the last ' from each
item in the list
# non_unicode_working_data1 = []
# issue = ''
# for available_issue in available_issues_list:
# issue = available_issue
# if (available_issue[0] == 'u'):
# issue = available_issue[2:-1]
# non_unicode_working_data1.append(str(issue))
AppInfo.AvailableIssues = available_issues_list
# AppInfo.AvailableIssues = non_unicode_working_data1
selected_issues = str(kw['issues2']) # From the form
length2 = len(selected_issues) # Length must be greater
thatn 0
first_char2 = selected_issues[0] # Get the first char in
the string
last_char2 = selected_issues[-1] # Get the last char in
the string
working_data2 = ''
if ((first_char2 == '[') and (last_char2 == ']')):
working_data2 = selected_issues[1:-1]
elif ((first_char2 == '[') and (last_char2 != ']')):
working_data2 = selected_issues[1:]
elif ((first_char2 != '[') and (last_char2 == ']')):
working_data2 = selected_issues[:-1]
else:
working_data2 = selected_issues
selected_issue_list = working_data2.split(',')
# Remove the u, the first ', and the last ' from each
item in the list
# non_unicode_working_data2 = []
# issue = ''
# for selected_issue in selected_issue_list:
# issue = selected_issue.strip()
# if (issue[0] == 'u' and issue[1] == "'" and issue[-1]
== "'"):
# issue = selected_issue[2:-1]
# non_unicode_working_data2.append(str(issue))
# AppInfo.SelectedIssues = non_unicode_working_data2
AppInfo.SelectedIssues = selected_issue_list
output = open('issues_temp.txt', 'a')
output.write('kw: %s\n\n' % kw)
output.write('available_issues : %s\n' % available_issues)
output.write('working_data1 : %s\n' % working_data1)
output.write('split Available issues : %s\n\n' %
available_issues_list)
output.write('selected_issues : %s\n' % selected_issues)
output.write('working_data2 : %s\n' % working_data2)
output.write('split selected issues : %s\n\n' %
selected_issue_list)
output.write('AppInfo.AvailableIssues : %s\n\n' %
AppInfo.AvailableIssues)
output.write('AppInfo.SelectedIssues : %s\n\n\n' %
AppInfo.SelectedIssues)
output.write('Available Issues:\n')
for (i, available_issue) in enumerate
(AppInfo.AvailableIssues):
output.write('----------------------\n')
output.write("issue %s = %s\n" % (i+1, str
(available_issue)))
output.write
('------------------------------------------------\n\n')
output.write('Selected Issues:\n')
for (i, selected_issue) in enumerate
(AppInfo.SelectedIssues):
output.write('----------------------\n')
output.write("issue %s = %s\n" % (i+1, str
(selected_issue)))
output.write
('------------------------------------------------\n')
output.close()
#message = '%s' % issue_list
except:
message = 'Something bad happened!'
return('Review')
Here is the output: Notice all of the u' 's!
kw: {'issues2': [u'6', u'2', u'8', u'1'], 'issues1': [u'3', u'4',
u'5', u'7', u'9', u'10', u'11']}
available_issues : [u'3', u'4', u'5', u'7', u'9', u'10', u'11']
working_data1 : u'3', u'4', u'5', u'7', u'9', u'10', u'11'
split Available issues : ["u'3'", " u'4'", " u'5'", " u'7'", " u'9'",
" u'10'", " u'11'"]
selected_issues : [u'6', u'2', u'8', u'1']
working_data2 : u'6', u'2', u'8', u'1'
split selected issues : ["u'6'", " u'2'", " u'8'", " u'1'"]
AppInfo.AvailableIssues : ["u'3'", " u'4'", " u'5'", " u'7'", " u'9'",
" u'10'", " u'11'"]
AppInfo.SelectedIssues : ["u'6'", " u'2'", " u'8'", " u'1'"]
Available Issues:
----------------------
issue 1 = u'3'
----------------------
issue 2 = u'4'
----------------------
issue 3 = u'5'
----------------------
issue 4 = u'7'
----------------------
issue 5 = u'9'
----------------------
issue 6 = u'10'
----------------------
issue 7 = u'11'
------------------------------------------------
Selected Issues:
----------------------
issue 1 = u'6'
----------------------
issue 2 = u'2'
----------------------
issue 3 = u'8'
----------------------
issue 4 = u'1'
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---