0

我一直在努力解决一个我似乎无法解决的问题。我有一个 Web 表单,它是从 MySQL 查询构建的,该查询从 PHP 运行并返回到 JQuery,它显示用户可以给出数字评级的电影画廊。我想将表单发送回 PHP 进行处理并写入数据库。

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 的一部分,但从我读过的内容来看,这与它没有任何关系。

并且将不胜感激指针/建议/见解。

4

1 回答 1

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...
});
于 2013-05-17T18:29:59.680 回答