javascript - 如何使用 AJAX 和 jQuery 发布数据?

标签 javascript php jquery ajax

我有这样的 HTML:

<script src='https://code.jquery.com/jquery-1.12.4.min.js'></script>
<p>1</p> <!-- this is loaded with <?php echo $item->id; ?> -->
<a id='delBtn1' my-data='tnt' onlick='del(this)' href='index.php?page=mypage'>
    <img src='del.ico'/>
</a>
<script>
    $(document).ready(function(){
        function del(e) {
            var p = $('a< p' ).html();
            $.post('index.php?page=mypage', {
                msg: e.getAttribute('my-data'), 
                id: p
            }, function(data, status) {
                alert("Sent " + data.msg + ' : '+ status);      
            });
        }
    }); 
</script>

我不知道为什么我无法获取 id '1' 并使用 '?' 发布到索引在数据 {msg, id} 的 URL 中。

最佳答案

i want to get ID in <p> and my-data in <a> then sent to index.php?page=mypage

首先是你所说的id只是 p 的 innerText元素。要检索您需要从提供的 a 遍历 DOM元素使用 prev()并取回它。

另请注意 my-data不是 a 的有效属性元素。要使用元素存储自定义数据,您应该使用 data-*属性。您还应该使用不显眼的 Javascript 来附加您的事件,而不是笨重和过时的 on*事件属性。

话虽如此,以下内容应该适合您:

<p>1</p>
<a id="delBtn1" class="delBtn" data-my-data="tnt" href="index.php?page=mypage">
    <img src="del.ico" />
</a>
$(document).ready(function(){
    $('.delBtn').click(function(e) {
        e.preventDefault(); // stop the normal link behaviour 
        var $el = $(this);

        $.post($el.attr('href'), {
            msg: $el.data('my-data'),
            id: $el.prev('p').text(),
        }, function(data, status) {
            alert("Sent " + data.msg + ' : '+ status);      
        });
    });
}); 

最后您声明您希望将请求数据放入 URL 中,如果是这种情况,您应该使用 $.get而不是 $.post .

关于javascript - 如何使用 AJAX 和 jQuery 发布数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37731396/

相关文章:

javascript - 在 d3 中选择一个形状的兄弟

php - wordpress 网站上有时出现间歇性服务器错误

php - Laravel 插入和检索关系

javascript - 粘性侧边栏停止在页脚上方 30 像素?

javascript - 通过选择一个选项将用户发送到链接

javascript - Ajax - 将 JSon 渲染为 HTML : View vs Controller

php - 我需要 mysql 结果集仅基于索引

javascript - 唯一影响同一个div类?

javascript - 如何使用 jQuery 按字母顺序对列表进行排序?

javascript - 获取 Facebook 页面帖子