我打算创建一个网站,让您可以迭代地构建SQL
查询。
这个想法如下:
while(user wants more where clauses)
{
show selection (html select) for table columns
let user choose one column
upon selection, show distinct values of that column
let user choose one/multiple value(s)
}
我知道如何处理SQL
部分,但我不知道如何处理页面的迭代构建。
所以我的问题是:
该网站将使用Perl
构建,我正在考虑将Ajax
用于动态部分。
非常感谢任何帮助。
答案 0 :(得分:0)
不确定你将使用什么,但是,如果使用点击某些东西,那么使用元素的Onload事件和ajax调用脚本,它会带回数据/内容,而在readystate上只更新容器DIV的innerHTML。 希望以下链接将帮助您理解这个概念将为您提供一个代码。 http://www.w3schools.com/php/php_ajax_database.asp
答案 1 :(得分:0)
如果我这样做,我会使用SQL::Abstract。
更新:
如果您不想重绘整个页面,那么您将使用AJAX。因此,找一个你觉得舒服的JavaScript库,其中包括ajax调用。 Jquery有这个,其他一些人也这样做。人们对各种图书馆有不同的看法。
无论如何,您的工作流程如下所示:
所以让我们专注于5和6。
数据有效负载:AJAX中的X表示XML,但许多应用程序发回JSON或HTML。
更新屏幕:
您可以通过设置标记的innerHTML或outerHTML属性将HTML直接应用于现有页面。但这不会更新DOM。如果你不在你的clcinet代码中挖掘DOM,那么这就足够了。如果你四处寻找,那么你需要构建节点并将它们添加到页面的DOM中,因此您可能需要考虑发送回JSON或XML。
因此,假设你的AJAX调用重新启动时你有一个id ='generatedSQL'的div,它将触发一个回调方法(让我们称之为updateSQL())并且在回调中你将拥有看起来很像的代码:
$(#generatedSQL).innerHTML = theVariableHoldingTheHtml;
您的另一个选择是解析JSONXML /等。并使用createNode()等,构建新的DOM位并将其插入页面。我没有jquery印章为你写这个。每当我需要做类似的事情时,我会查找它。
如果查询文本只是仅显示,并且您从不尝试在客户端进行挖掘,只需使用innerHTML方法,无论是传递HTML还是传递JSON并从中生成HTML。如果查询文本对客户端的内部工作很重要,那么你需要编写一堆DOM操作代码。