从javascript中的click事件获取输入并将其发送到django或将其保存为文本文件

时间:2018-02-26 15:59:59

标签: javascript html django python-3.x

我有一个html文件,它是一个数据帧类。我在每行添加了click事件。我想将fName,lName,Address,Zip发送到django views.py进行一些内部查询。我的印象是我需要使用ajax。我是javascript和Ajax的新手,并且不知道如何将其合并到代码中。任何帮助,将不胜感激。如果我有办法将这些变量保存到txt文件,那么我可以调用Django中的另一个函数并以这种方式执行。不确定,如果将其保存到文本文件是正确的方法。

#sample HTML file

<table border="1" class="dataframe">
<thead>
  <tr style="text-align: right;">
    <th>first</th>
    <th>LastName</th>
    <th>Address</th>
    <th>zip</th>
    <th>State</th>
    </tr>
</thead>
<tbody>
  <tr>
    <td>mary</td>
    <td>poppins</td>
  <td>3345 leanie rd</td>
  <td>28277</td>
  <td>PA</td>
<tr>
   <td>honas</td>
   <td>bond</td>
   <td>1123 cavalry st</td>
   <td>38788</td>
   <td>GA</td>

function addRowHandlers(tableId) {
if(document.getElementById(tableId)!=null){
    var table = document.getElementById(tableId);
    var rows = table.getElementsByTagName('tr');
    var fname = '';
    var lname = '';
    var address = '';
    var zip = '';
    var State = '';
    for ( var i = 1; i < rows.length; i++) {

        rows[i].i = i;
        rows[i].onclick = function() {

            fname = table.rows[this.i].cells[0].innerHTML;                
            lname = table.rows[this.i].cells[1].innerHTML;
            address = table.rows[this.i].cells[2].innerHTML;
            zip = table.rows[this.i].cells[3].innerHTML;
            state = table.rows[this.i].cells[4].innerHTML;
            alert(fname +' ' + lname + ' ' + address +' '+ zip +' '+ state + ' ');
            };
        }
     }
}
</script>
#views.py
def query_result(request):
fname = request.GET(//what do I type here?//)

2 个答案:

答案 0 :(得分:1)

理想的解决方案是在点击行时发出Ajax请求并处理响应...您可以尝试的另一件事是,将所有与表相关的数据加载到python中的javascript Object / Array中。在行上单击从该javascript对象获取相应的行数据。这种方法的问题在于您将一次加载所有表数据。

答案 1 :(得分:0)

你可以使用p5.js库,它有一个名为httpPost()的方法。它将您选择的元素的JSON数据发送到后端。非常容易使用没有ajax。