javascript - JQuery .post() 将 html 返回到表中

标签 javascript php jquery .post

我有一个带有两个输入框的表单。歌曲和艺术家。当按下搜索按钮时,它使用 .post() 的 JQuery 函数将数据发布到 PHP 页面并将结果返回到页面。

这是我的 JavaScript 代码:

<script>
    $(function() {

        $("#submitSearch").bind("click", function() {
            var songTitle = $("#song").val();
            var artistName = $("#artist").val();

            $.post("getSearchResults.php", {
                artist: artistName, 
                song: songTitle
            },
            function( data, status ) {
                $("#searchResults tbody").last().append( data );
            });
        });
    });
</script>

目标是将结果放入 <tbody> “searchResults”表的一部分。

<table id="searchResults">
    <thead>
        <tr>
            <th>Title</th>
            <th>Artist</th>
            <th>Album</th>
            <th>Add To List</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

但是,它似乎没有将结果插入表中。

直到我输入 alert() Javascript 代码中的消息显示它。

<script>
    $(function() {

        $("#submitSearch").bind("click", function() {
            var songTitle = $("#song").val();
            var artistName = $("#artist").val();

            $.post("getSearchResults.php", {
                artist: artistName, 
                song: songTitle
            },
            function( data, status ) {
                $("#searchResults tbody").last().append( data );
            });

            alert("test");

        });
    });
</script>

当我消除“测试”警报时,它会将结果放入表格中,然后它们很快就会消失。

我在这里缺少什么?请帮我!我很困惑。提前致谢。

最佳答案

试试这个...

<script>
    $(function() {

        $("#submitSearch").bind("click", function(e) {
            e.preventDefault();
            var songTitle = $("#song").val();
            var artistName = $("#artist").val();

            $.post("getSearchResults.php", {
                artist: artistName, 
                song: songTitle
            },
            function( data, status ) {
                $("#searchResults tbody").last().append( data );
            });
        });
    });
</script>

我向点击函数添加了一个事件参数,以及e.preventDefault()。这会停止实际发生的提交,从而重新加载您的页面。另外,根据您使用的 jQuery 版本,您可能需要使用 on() 而不是 bind()。 (它的语法与上面完全相同。)

关于javascript - JQuery .post() 将 html 返回到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19007165/

相关文章:

javascript - JQuery Datepicker 反转下一个和上一个按钮事件

从 cronjob 运行时,PHP 没有读取或写入文件的权限

jquery - 如何根据其父级的宽度和高度设置FontAwesome图标的宽度、高度和位置?

jquery - 没有真实索引的Grails索引属性

javascript - Jquery 单击处理程序不在表中工作

javascript - 使用 gulp-usemin 不会在 html 文件中重写丑化文件

javascript - Jint 对于字符串来说非常慢

php - Ajax 从 JSON 返回未定义 - 登录系统和最佳实践

php - 慢查询 WordPress 网站(每月 50 万访问者和 15 万个帖子)

javascript - 删除数组对象中的重复项