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
-~----------~----~----~----~------~----~------~--~---

Reply via email to