shaw1ea schrieb:
> 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!
What is this output-file for? You don't use that, in a json-controller
you just return the data-structures directly.
And the output file is your problem, you are creating representations of
unicode-strings, which are prefixed with that u.
So build the data you want, and then simply return it. Your code is to
messy to make a useful example (at least fast enough :))
Diez
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---