I posted this question to a python mail group as well. they provided me a
very good solution -- add a "return false" at the end of the submit
function.

It works great, but I don't understand why there's a return false at the end
of this function.

Thanks very much.

On Wed, Jan 21, 2009 at 12:43 AM, Samuel <samuel.yh...@gmail.com> wrote:

> Hi,
>
> After struggling in google  for days on this problem , I hope any of you
> could help me solve it.
>
> My problem is that after I submit a form in jquery with $.post to the
> server, which is powered by  Django. The post data has been sent to the
> server, and saved in the database, but the function of the the ajax success
> has not been executed because the page has been flashed.
>
> At the same time, I found a log error in the server:
>
>   File
> "/usr/local/lib/python2.6/site-packages/django/core/servers/basehttp.py",
> line 279, in run
>     self.finish_response()
>   File
> "/usr/local/lib/python2.6/site-packages/django/core/servers/basehttp.py",
> line 318, in finish_response
>     self.write(data)
>   File
> "/usr/local/lib/python2.6/site-packages/django/core/servers/basehttp.py",
> line 397, in write
>     self.send_headers()
>   File
> "/usr/local/lib/python2.6/site-packages/django/core/servers/basehttp.py",
> line 461, in send_headers
>     self.send_preamble()
>   File
> "/usr/local/lib/python2.6/site-packages/django/core/servers/basehttp.py",
> line 379, in send_preamble
>     'Date: %s\r\n' % http_date()
>   File "/usr/lib/python2.6/socket.py", line 297, in write
>     self.flush()
>   File "/usr/lib/python2.6/socket.py", line 284, in flush
>     self._sock.sendall(buffer)
> error: [Errno 32] Broken pipe
>
> So I thought it must be a Django problem; however, my data has been
> successfully saved to the database.
>
> Here's the jquery code used:
>
>> $this.submit(function () {
>>                 var sentence=$(this).find('input:eq(0)').val();
>>                 var translation=$(this).find('input:eq(1)').val();
>>                 var keyword=key; //word is a global variable
>>                 $.post('addsentence/'+keyword, {
>>                     ensent:sentence,
>>                     cnsent:translation
>>                 },function () {
>>                     $('#sentadd').remove();
>>                 })
>>             })
>>
>
> Here I'm going to post the two variable ensent and cnsent to the server.
>
> And my corresponding view on Django is:
>
>> def add_sentence(request,word):
>>         example=Example()
>>         sentence=request.POST
>>         word=Vocabulary.objects.get(word=word)
>>         example.word=word
>>         example.original=sentence["ensent"]
>>         example.translation=sentence["cnsent"]
>>         example.user=request.user
>>         example.save()
>>         return render('noResponse.xml')
>>
>
> I thought they were very easy functions, but really out of my understanding
> what on earth the problem is! I really need your helps. Thanks in advance.
>
>
> --
> Samuel Wu
>



-- 
Samuel Wu

Reply via email to