我正在开发一个包含OpenStreetMap应用程序作为HTML页面的Qt程序,该页面能够访问数据库(通过提交包含查询开始日期和结束日期的ajax表单)以检索和可视化查询.地图.我想将此查询过程从HTML / Javascript部分移至Qt.到目前为止,我设法通过Qt与浏览器进行了交互,但是仍然存在以下问题:
1)单击Qt的获取查询按钮,并弹出一个警告框,提示Ajax POST失败-数据库不在我的当前笔记本电脑上,当我单击“ HTML浏览器”窗口的获取时,我应该得到错误查询按钮或Qt的获取按钮-
2)而且,每当我单击HTML浏览器的“获取查询”按钮时,它都会显示POST警告,但还会显示额外的POST警告警报框,具体取决于我单击Qt的“获取查询”按钮的次数. -例如,如果我连续五次单击“ Qt的获取查询”按钮,然后单击一次HTML窗口的“获取”按钮,则我会连续收到6条POST失败消息-
HTML代码如下所示:
Start
End
AJAX表格的发布方法是这样的:
$(document).ready(function(){
// ajaxForm submit
$('#ajaxForm').submit(function() {
$.ajax({
type: 'POST',
url: 'heatQuery.php',
data: $(this).serialize(),
dataType: 'json',
success: function(response)
{
// update the points for heatmap layer
updateHeatMap(response);
},
error: function(errorMsg)
{
alert('Error in Ajax POST');
}
});
return false;
});
});
最后,调用该函数的Qt代码是这样的:
void MainWindow::onButtonClicked() // clicking the button in order to POST
{
//the QString a is the same ajax post function as declared above
QString a = "$(document).ready(function(){$('#ajaxForm').submit(function() {$.ajax({type: 'POST',url: 'heatQuery.php',data: $(this).serialize(),dataType: 'json',success: function(response){updateHeatMap(response);},error: function(errorMsg){alert('Error in Ajax POST');}});return false;});});";
this->view->page()->mainFrame()->evaluateJavaScript(a);
}
对这里出什么问题有任何想法吗?谢谢.