Javascript 引导数据id未传递值

Javascript 引导数据id未传递值,javascript,php,jquery,twitter-bootstrap,Javascript,Php,Jquery,Twitter Bootstrap,在我的代码中,我有 <script> $(document).on('click', 'a#coin', function(){ // get month var val = $(this).attr('data-id'); $.post('alert.php', {coin: val}, function(data){ console.log(data); }); }); </script> 模态很好地弹

在我的代码中,我有

<script>
    $(document).on('click', 'a#coin', function(){
    // get month
    var val = $(this).attr('data-id');

    $.post('alert.php', {coin: val}, function(data){
        console.log(data);
    });
});
</script>   
模态很好地弹出,只是没有传递数据id值 不确定我做错了什么

添加了更多代码

<?php
require('alert.php');
?>
   <html><head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="css.css" rel="stylesheet" type="text/css">
    <script src="https://code.jquery.com/jquery-3.2.1.js"></script>
    <script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
    <script>
    $(document).ready(function(){
        $("#liveprices").load("liveprices.php");
        setInterval(function() {
            $("#liveprices").load("liveprices.php");
        }, 5000);
    });
   </script>

  </head><body>

$(文档).ready(函数(){
$(“#liveprices”).load(“liveprices.php”);
setInterval(函数(){
$(“#liveprices”).load(“liveprices.php”);
}, 5000);
});

这里讨论的函数加载在文档的末尾,因为您使用的是
文档。在('click')
上,
$(this)
可能有些混乱。我可能会尝试用
$(event.target).最近('a#coin')
代替
$(this)
,看看它是否有帮助:

$(document).on('click', 'a#coin', function(event) {
    var val = $(event.target).closest('a#coin');
    console.log(val);
});

由于您使用的是
document.on('click')
,因此
$(this)
可能有些混乱。我可能会尝试用
$(event.target).最近('a#coin')
代替
$(this)
,看看它是否有帮助:

$(document).on('click', 'a#coin', function(event) {
    var val = $(event.target).closest('a#coin');
    console.log(val);
});

说bootstrap.min.js需要Jquery,尽管Jquery是正确加载的 在上面

默认情况下,引导使用jqueryslim版本。Slim版本没有
$.ajax
和相关功能。使用jQuery完整版本

使用这个jQuery

<script
  src="https://code.jquery.com/jquery-3.2.1.min.js"
  integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
  crossorigin="anonymous"></script>

说bootstrap.min.js需要Jquery,尽管Jquery是正确加载的 在上面

默认情况下,引导使用jqueryslim版本。Slim版本没有
$.ajax
和相关功能。使用jQuery完整版本

使用这个jQuery

<script
  src="https://code.jquery.com/jquery-3.2.1.min.js"
  integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
  crossorigin="anonymous"></script>
在讨论了需求之后,我们得出结论,在这种情况下根本不需要PHP,简单的jQuery就可以做到这一点:

要求

如果你看这个 您将看到一个带有报警图标的硬币名称列表。。 当点击相关的报警图标时,我希望它弹出一个模式,并只分配和回显一个变量值(即硬币)BTC等

稍后将添加一个表单,理想情况下,该表单会将数据添加到一个隐藏字段中,以便提交

解决方案(一种方法):

相关代码更改:

$(document).on('click', 'a.coin', function(){
    var val = $(this).attr('data-id'), modal = $('div#test-modal');
    console.log(val);
    modal.find('.modal-title').html('Get alerts for ' + val);

    modal.find('.modal-body .alert-notification').html('Get alert notifications when ' + val + ' breaks strong support / resistance lines');

    modal.modal('show');
});
在讨论了需求之后,我们得出结论,在这种情况下根本不需要PHP,简单的jQuery就可以做到这一点:

要求

如果你看这个 您将看到一个带有报警图标的硬币名称列表。。 当点击相关的报警图标时,我希望它弹出一个模式,并只分配和回显一个变量值(即硬币)BTC等

稍后将添加一个表单,理想情况下,该表单会将数据添加到一个隐藏字段中,以便提交

解决方案(一种方法):

相关代码更改:

$(document).on('click', 'a.coin', function(){
    var val = $(this).attr('data-id'), modal = $('div#test-modal');
    console.log(val);
    modal.find('.modal-title').html('Get alerts for ' + val);

    modal.find('.modal-body .alert-notification').html('Get alert notifications when ' + val + ' breaks strong support / resistance lines');

    modal.modal('show');
});


我不确定这是否会有所不同,但jQuery有一个内置函数,用于访问
数据-*
属性<代码>$(this).data('id')它对我有效。我在alert.php中获得硬币价值。打开控制台并查找错误无更改:(说bootstrap.min.js需要Jquery,尽管Jquery是在itI的正上方加载的。我认为这里的代码没有任何问题。你能为你的bootstrap.min.js尝试一下吗?我不确定这是否会有什么不同,但Jquery有一个用于访问
数据-*
属性的内置函数。
$(this.data('id'))
它对我有效。我在alert.php中获得硬币价值。打开控制台并查找错误。请不要更改:(说bootstrap.min.js需要Jquery,尽管Jquery是在itI的正上方加载的。我认为这里的代码没有任何问题。你能为你的bootstrap.min.js尝试一下吗?获取未捕获的引用错误:ev不是在HtmlanchoreElement中定义的。(index.php:263)在HTMLDocument.dispatch(Jquery.js:4676)位于HTMLDocument.elemData.handle(jquery.js:4360)我在
ev
event
之间切换作为变量名。现在已修复。但请检查另一个发布的答案,看起来它可能与您的直接控制台错误有关。我更改了jQuery版本,现在什么都没有收到这些错误未捕获类型错误:在Function.jQuery.param()的Build.params()处非法调用在Function.jQuery.(匿名函数)[as post](htThis听起来确实与jQuery版本或脚本运行顺序有关。您可能需要发布更多显示这些详细信息的代码。获取未捕获引用错误:ev未在htmlanchoreElement中定义。(index.php:263)在HTMLDocument.dispatch(jquery.js:4676)在HTMLDocument.elemData.handle(jquery.js:4360)上我在
ev
event
之间切换作为变量名。现在已修复。但请检查另一个发布的答案,看起来它可能与您的直接控制台错误有关。我更改了jQuery版本,现在什么都没有收到这些错误未捕获类型错误:在Function.jQuery.param()的Build.params()处非法调用位于Function.jQuery.(匿名函数)[as post](这听起来确实与jquery版本或脚本的运行顺序有关。您可能需要发布更多显示这些详细信息的代码。已更改,尽管根据下面的回答,我在控制台中收到一个错误ev未在HtmlanchoreElement中定义。(index.php:263)这可能是另一个问题,你在第263行有什么?你能发布完整的代码吗?@chrisyatesh已更改,尽管根据下面的回答,我在控制台中收到一个错误ev未在HtmlanchoreElement中定义。(index.php:263)这可能是另一个问题,你在第263行有什么?你能发布完整的代码吗?@chrisyat对一个非常复杂的混乱的完美回答哈哈!谢谢对一个非常复杂的混乱的完美回答哈哈!谢谢