2017-04-10 64 views
1

我知道我需要使用AJAX来更新结果的网页。我的想法是运行查询并将结果发送回窗体。通常这只是查询的成功或失败,但有时需要返回文本。该平台是Linux。我将如何通过网页控制PostgreSQL?

+1

这看起来有点不限。你已经有什么 - PHP脚本,客户端代码等? – Manngo

+0

什么都没有。这是一个绿地的情况。那么,这不完全正确。有一堆SQL等待从旧式DBMS中应用。 –

+0

你可以通过ajax,json,jscript和php –

回答

0

这个例子是基于在网站上做出了榜样https://www.w3schools.com

getuser.php

<!DOCTYPE html> 
<html> 
<head> 
<style> 
table { 
    width: 100%; 
    border-collapse: collapse; 
} 

table, td, th { 
    border: 1px solid black; 
    padding: 5px; 
} 

th {text-align: left;} 
</style> 
</head> 
<body> 

<?php 
$q = intval($_GET['q']); 

$dbconn = pg_connect('localhost','peter','abc123','my_db'); 
if (!$con) { 
    die('Could not connect'); 
} 



$query = "SELECT * FROM user WHERE id = $1"; 
$result = pg_prepare($dbconn, "my_query", $query); 

$data = array($q); 
$result = pg_execute($dbconn, "my_query", $data); 


echo "<table> 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Age</th> 
<th>Hometown</th> 
<th>Job</th> 
</tr>"; 
while($row = pg_fetch_row($result)) { 
    echo "<tr>"; 
    echo "<td>" . $row[0] . "</td>"; 
    echo "<td>" . $row[1] . "</td>"; 
    echo "<td>" . $row[2] . "</td>"; 
    echo "<td>" . $row[3] . "</td>"; 
    echo "<td>" . $row[4] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 
pg_close($dbconn); 
?> 
</body> 
</html> 

在HTML

<html> 
<head> 
<script> 
function showUser(str) { 
    if (str == "") { 
     document.getElementById("txtHint").innerHTML = ""; 
     return; 
    } else { 
     if (window.XMLHttpRequest) { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp = new XMLHttpRequest(); 
     } else { 
      // code for IE6, IE5 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (this.readyState == 4 && this.status == 200) { 
       document.getElementById("txtHint").innerHTML = this.responseText; 
      } 
     }; 
     xmlhttp.open("GET","getuser.php?q="+str,true); 
     xmlhttp.send(); 
    } 
} 
</script> 
</head> 
<body> 

<form> 
<select name="users" onchange="showUser(this.value)"> 
    <option value="">Select a person:</option> 
    <option value="1">Peter Griffin</option> 
    <option value="2">Lois Griffin</option> 
    <option value="3">Joseph Swanson</option> 
    <option value="4">Glenn Quagmire</option> 
    </select> 
</form> 
<br> 
<div id="txtHint"><b>Person info will be listed here...</b></div> 

</body> 
</html> 

这是一个简单的例子,让你明白基本。如果你想更多的帮助开始编程,并且如果你有任何困难问社区。

在上例中,当用户在上面的下拉列表中选择一个人时,会执行一个名为“showUser()”的函数。

该函数由onchange事件触发。代码说明:

代码说明:

首先,检查是否有人被选中。如果没有人被选中(str ==“”),清除txtHint的内容并退出该功能。如果选择了一个人,执行下列操作:

1)创建一个XMLHttpRequest对象

2)创建的函数被执行时,服务器响应就绪

3)发送请求关闭到在服务器上的文件

注意到一个参数(q)被添加到URL(与下拉列表中的内容)

通过上述JavaScript调用服务器上的网页被称为“的getUser PHP文件.PHP”。

“getuser.php”中的源代码在PostgreSQL数据库上运行更便宜的执行,并将结果返回到HTML表中。

说明:当查询与JavaScript发送到PHP文件时,会发生以下情况:

1)PHP打开正确的人发现

一个PostgreSQL服务器

2)的连接

3)创建一个HTML表格,填充数据并发送回“txtHint”占位符。

+0

是的,我认为这是我想要的核心,谢谢。 –

+0

如果您觉得它有用,请给一个分数或一个标志。对于其他寻求相同事物的人来说,发现速度更快。 –

+0

我确实击中了向上箭头,但我没有声望做这个节目。我如何评分答案? –

1

您可以使用spring boot + hibernate构建一个漂亮的应用程序。适用于postgresql。一个好方法是实施@restcontroller