簡體   English   中英

如何從ajax獲取表單ID並在symfony2的click函數中進行設置

[英]how to get form id from ajax and set it in click function in symfony2

我想將ID存儲在全局變量中,然后將該ID存儲以進行表單編輯,這是我的xml請求:

if($request->isXmlHttpRequest()) {
        $response = new Response();
        $output = array('success' => true, 'title' => $entity->gettitle(), 'id' => $entity->getId(), 'notes' => $entity->getnotes(), 'accountid' => $entity->getaccountid(), 'clientid' => $entity->getClientID(), 'status' => $entity->getstatus(), 'totalamount' => $entity->getTotalAmount(), 'paidamount' => $entity->getPaidAmount(), 'balanceamount' => $entity->getBalanceAmount(), 'createdby' => $entity->getcreatedby(), 'updatedby' => $entity->getupdatedby(), 'createddatetime' => $entity->getcreateddatetime(), 'updateddatetime' => $entity->getupdateddatetime());
         $response->headers->set('Content-Type', 'application/json');
         $response->setContent(json_encode($output));
         return $response;
    }

這是我的ajax代碼:

$("form").submit(function(e) {              
         e.preventDefault();
         var url = $(this).attr('action');
         var data = $(this).serialize();
         $.ajax({
            type: "POST",
            url: url,
            data: data,
         }).done(function( result ) {
                 invoiceid=result.id;
            if(result.success) {
                $('#result').css({'color':'black','background-color':'#8F8','display':'Block','width':'200px'});
                $('#result').html('Invoices Record Inserted');
                setTimeout(function(){
                    $('#result').hide();
                    },3000);
            }
         });
         this.reset();
     });
     $("#edit").click(function(){

    window.location.href= "{{ path('invoices_edit', {'id': invoiceid }) }}";  
            });      

這是包含id的myjson響應:

 {"success":true,"title":"invoice","id":57,"notes":"gjgjgjgjg","accountid":1,"clientid":"5","status":"sent","totalamount":"90000","paidamount":"45000","balanceamount":"45000","createdby":1,"updatedby":1,"createddatetime":{"date":"2013-10-03 17:37:00","timezone_type":3,"timezone":"Asia\/Karachi"},"updateddatetime":{"date":"2013-10-03 17:37:00","timezone_type":3,"timezone":"Asia\/Karachi"}}

當我提醒invoiceid時,它會顯示result.id的值,但invoiceid不會傳遞給click函數,我該怎么做?

.done()是回調。

您需要傳遞result.id或在完成的回調中調用$('#edit')。click()

<script type="text/javascript">
var invoiceId;
$(document).ready(function(){
 $("form").submit(function(e) {              
         e.preventDefault();
         var url = $(this).attr('action');
         var data = $(this).serialize();
          $.ajax({
            type: "POST",
            url: url,
            data: data,
           })
           .success(function( result ) {
              invoiceid=result.id;
             //after setting you can call click like this
              $('#edit').click(); // or use trigger()
               if(result.success) {
                $('#result').css({'color':'black',
                      'background-color':'#8F8','display':'Block','width':'200px'});
                $('#result').html('Invoices Record Inserted');
                setTimeout(function(){$('#result').hide();},3000);
              }
            });
         this.reset();
     });

   $("#edit").click(function(){
      = "{{ path('invoices_edit', {'id': invoiceid }) }}";
   });

 });

</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM