我有一个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?//)
答案 0 :(得分:1)
理想的解决方案是在点击行时发出Ajax请求并处理响应...您可以尝试的另一件事是,将所有与表相关的数据加载到python中的javascript Object / Array中。在行上单击从该javascript对象获取相应的行数据。这种方法的问题在于您将一次加载所有表数据。
答案 1 :(得分:0)
你可以使用p5.js库,它有一个名为httpPost()的方法。它将您选择的元素的JSON数据发送到后端。非常容易使用没有ajax。