使用Flask / Jquery将可点击表格行的值传递给Python

时间:2017-05-05 10:24:21

标签: javascript jquery python flask

所以,我是Python和Flask的新手,并构建了一个应用程序,它在表格中显示了一个投资组合列表。现在,我使用js / Jquery使这些行可以点击。然而,我想要的是,单击行(portfolio_id)的第二列的值以某种方式返回到Python。我们的想法是,从列表中选择一个组合后,会出现一个包含该特定组合详细信息的新屏幕,因此Python需要知道要加载哪个组合。我设法在click事件中包含一个href / link,所以出现了新的屏幕,但是我无法弄清楚如何将我的表中的值放入我的Python代码中......在Flask代码下面:

{% block main %}
<h2>Portfolio List</h2>
 <ul>
     <table style="width:100%">
     <tr> 
         <th>Relationship Nbr </th>
         <th>Portfolio Nbr </th>
         <th>Strategy </th>
         <th>Portfolios </th>
         <th>Last Rebalancing </th>
     </tr>
    {% for portfolio in portfolios %}
    <tr class='clickable-row' data-href="{{ url_for('portfolio') }}" method = POST> 
         <td>{{portfolio.rel_nbr }} </td>
         <td>{{portfolio.portfolio_id}}</td>
         <td>{{portfolio.strategy_name}} </td>
         <td>{{portfolio.security_list}} </td>
         <td>{{portfolio.last_rebalance}} </td>
     </tr>
    {% endfor %}
    </table>
</ul>

{% endblock %}

我使用的jquery代码如下:

    src="jquery-3.2.1.min-js">
    
    jQuery(document).ready(function($) {
    $(".clickable-row").click(function() {
        window.location = $(this).data("href");
    });
});

有什么想法可以做到这一点? TXS! 巴特

1 个答案:

答案 0 :(得分:0)

您的代码对我来说很好。我刚刚更改了jquery脚本的位置。

尝试将jquery脚本放在适当的位置。我认为这是您的代码无法正常工作的唯一原因。

 jQuery(document).ready(function($) {
    $(".clickable-row").click(function() {
       alert($(this).data("href"));
        window.location = $(this).data("href");
    });
});
{% block main %}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<h2>Portfolio List</h2>
 <ul>
     <table style="width:100%">
     <tr> 
         <th>Relationship Nbr </th>
         <th>Portfolio Nbr </th>
         <th>Strategy </th>
         <th>Portfolios </th>
         <th>Last Rebalancing </th>
     </tr>
    {% for portfolio in portfolios %}
    <tr class='clickable-row' data-href="{{ url_for('portfolio') }}" method = POST> 
         <td>{{portfolio.rel_nbr }} </td>
         <td>{{portfolio.portfolio_id}}</td>
         <td>{{portfolio.strategy_name}} </td>
         <td>{{portfolio.security_list}} </td>
         <td>{{portfolio.last_rebalance}} </td>
     </tr>
    {% endfor %}
    </table>
</ul>

{% endblock %}