2016-07-06 55 views
0

我有一個Laravel應用程序,它具有一個Javascript函數,捕獲我用來動態填充模式框的一些數據。Javascript:捕獲Laravel應用程序的表單動作字段中使用的值

$(function() { 
    $('#edit-auction-modal').on("show.bs.modal", function (e) { 
    var auctionId = $(e.relatedTarget).data('id'); 
    console.log(auctionId); 
    //auctionId has the correct value for the selected auction. This needs to be used in the View file 
    }); 
}); 

在視圖文件中,我有一個帶窗體的模態框(用於更新字段)。

<div id="edit-auction-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
     <div class="modal-dialog"> 
      <div class="modal-content"> 
       <div class="panel panel-info"> 
        <div class="panel-heading"> 
        <div class="panel-title" id="auctionLabel"></div> 
        </div> 
       </div> 
       <div class="modal-body edit-content" style="padding-top:10px"> 
        <form method="POST" action="{!! route('admin_auctions_update', ['id' => auctionId ]) !!}"> 
         {{ csrf_field() }} 
         {{ method_field('PUT') }} 
         .... 
        </form> 

使用上面的代碼,因爲它試圖發送到「拍賣/ auctionId /更新」而不是「拍賣/ 1 /更新」或「拍賣/ 2 /更新」

如何沒有被更新可以改變這個,以便我可以在我的視圖中使用auction0id的值(來自JS文件)?

應該很瑣碎,我認爲,但我的JS技能低於平均水平......

回答

1

你可以嘗試這樣的事:

$(function() { 
    $('#edit-auction-modal').on("show.bs.modal", function (e) { 
     var auctionId = $(e.relatedTarget).data('id'); 
     var pattern = /(auctions\/)(.+)(\/update)/; 
     var action = $('form').attr('action'); 
     $('form').attr('action', action.replace(pattern, "$1" + auctionId + "$3")); 
    }); 
}); 

說明:

的觀點是處理服務器端並定義最初發送給瀏覽器的html。過了這一點,您不會運行任何PHP代碼。由於auctionId僅作爲客戶端事件的結果而存在,因此您修改action屬性的唯一工具是JavaScript。

因此,在視圖中,你只是包括JS腳本,因爲我認爲你已經是。此外,您可以將原始操作編寫爲{!! route('admin_auctions_update', ['id' => 0 ]) !!}0作爲一些默認佔位符值)。

最後是正則表達式解釋:圓括號定義捕獲組,然後您可以按數字訪問。所以,第一個包含在被替換的id之前的字符串內容,第二個包含id本身,第三個包含字符串的其餘部分。

+0

感謝您的建議。什麼需要在視圖文件中。這是否僅僅是這樣:

?對於我來說:1美元和3美元是多少? – wiwa1978

+0

@ wiwa1978回答更新 – alepeino

+0

我明白了原則。儘管代碼應該動態更新動作,但它似乎始終使用原始動作(id = 0)。我添加了一個console.log(action);聲明在JS文件中,它總是會註銷http:// localhost:5000/admin/auctions/0。 – wiwa1978

相關問題