2013-05-17 48 views
0

我一直在摔跤,但我似乎無法解決這個問題。我有一個從PHP運行的MySQL查詢構建的Web表單,並返回到顯示用戶可以給出數字評分的電影庫的JQuery。我想將表單發送回PHP進行處理並寫入數據庫。用JQuery和PHP處理動態創建的Web表單

function loadGallery() 
{ 
    $('content').append('<form id="movieRatings" action="../php/saveRatings.php" method="post">).html(); 
    $.get('../php/getMovies.php') 
     .done(function(data) { 
      var query = $.parseJSON(data); 
      for (var i = 0, len = query.length; i < len; i++) { 
      var galleryMovies = '<div class="movContainer">' +  
           '<div class="movie">' + 
            '<a title="' + query[i].mov_title + '" href="../' + query[i].mov_title + '.html">' + 
            '<h3>' + query[i].mov_title + '</h3>' + 
            '<img src="../imgs/' + query[i].poster_path + '" /></a>' + 
            '<input type="number" name="' + query[i].mov_title + '" >' + 
           '</div>' + 
          '</div>'; 
      $('#content').append(galleryMovies).html(); 
       } 
      $('#content').append('<input type="submit" value="Submit"></form>'); 
    })    
    .fail(function() { 
       $('#content').html("Epic Fail!") ; 
      }); 
} 

表單顯示沒有任何問題,但單擊提交按鈕甚至不會發送「saveRatings」PHP文件的請求。我確信我錯過了一些簡單的東西,我似乎無法弄清楚那是什麼。我的第一個想法是,這是因爲該畫廊不是實際的HTML的一部分,但從我讀過的內容來看,這不應該與它有任何關係。

指標/ sugestions/insight將不勝感激。

+0

不能從'

追加''
分別' - '.append'創建DOM元素,而不是標籤,所以'
'會自動關閉。檢查你的瀏覽器的DOM瀏覽器,看看這些元素是如何組織的。 – Blazemonger

回答

1

,而不是

$('#ID').click(function(){ 
    // do something here 
}); 

開關

$(document).on("click", "#ID", function(){ 
    // do smth here 
}); 

你的第一個假設是真的,如果元素不是初始HTML的一部分,那麼勢必給它的任何活動都不能工作,除非你用我的第二種方法去。你可以在jquery文檔中找到更多關於這種行爲的信息。

LE:這同樣適用於提交動作,萬一我不是用點擊例子清楚:

$(document).on("submit", 'form#formID',function(){ 
    // do smth here... 
}); 
+0

所以對於'$(document).on(...)'我需要放入一些東西來處理輸入到每個輸入框的名稱和數量,對吧? – gjettison