我在互联网上搜索了在drupal 7网站上使用我们的历史数据库的方法。我有一个用名字,结婚日期等建立的数据库。我想有一个基本页面来进行搜索。我找到了一个帮助代码的网站,但它没有用。我不是程序员,但我可以按照指示行事。这是我的代码:
在使用php代码作为输入格式的基本页面上
<html>
<body>
<script language=”javascript” type=”text/javascript”>
<!–
//Browser Support Code
function ajaxFunction(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject(“Msxml2.XMLHTTP”);
} catch (e) {
try{
ajaxRequest = new ActiveXObject(“Microsoft.XMLHTTP”);
} catch (e){
// Something went wrong
alert(“Your browser broke!”);
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById("ajaxDiv");
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var lastphp = document.getElementById("lastphp").value;
var queryString = “?lastphp=” + lastphp;
ajaxRequest.open(“GET”, “/php/check.php” + queryString, true);
ajaxRequest.send(null);
}
//–>
</script>
<form name="myForm">
<table border=”0″>
<tr>
<td width = 100>Last Name: <br /></td>
<td><input type="text" id="lastphp"> </td>
</tr>
</table>
<br />
<input type="button" onclick="ajaxFunction()" value="Search" />
</form>
<div id="ajaxDiv"></div>
</body>
</html>
然后,我创建了一个php文件:
<?php
//Connect to MySQL Server
//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("localhost","root","") or die('Cannot connect to the database because: ' . mysql_error());
//specify database ** EDIT REQUIRED HERE **
mysql_select_db(“genealogy”) or die(“Unable to select database”); //select which database we’re using
// Retrieve data from Query String
$last = $_GET['lastphp'];
// Escape User Input to help prevent SQL Injection
$last = mysql_real_escape_string($last);
//Build and run a SQL Query on our MySQL tutorial
$query = “SELECT * from columbus_ledger_enquirer_obituary_db”; //just grab every row from our table
$results = mysql_query($query)or die(mysql_error());
//print what the user entered (eventually I’m sure you’ll want to use this data in your query)
echo “You Entered: ” . $last . “<br><br>”;
//print the results
echo “Database Results: <br>”;
while($row = mysql_fetch_array($results)){
echo “$row[lastname]<br>”; //NOTE: Here we are printing all the data from the ‘lastname’ column of our database, either change this name, or make sure you have a lastname column with some data in it
}
?>
我将php文件放在/ sites / default下名为php的文件夹中。
基本页面有一个很好的框和搜索按钮,但是当我输入一个名字时,没有任何反应。
这里的任何人都可以告诉我错误吗?
由于
答案 0 :(得分:3)
正如@SpaceBeers所提到的,在Drupal(谷歌“引导Drupal”或“Drupal中的访问自定义数据库”中)做这种事情真的不是一个很好的方法来获取一些想法。
您的代码可能无法正常工作的原因是因为您使用以下代码调用了AJAX:
ajaxRequest.open(“GET”, “/php/check.php” + queryString, true);
问题出在路径上......你提到你把'php'文件夹放在'/ sites / all'中,所以你的AJAX调用的路径肯定是一样的:
ajaxRequest.open("GET", "/sites/all/php/check.php" + queryString, true);
答案 1 :(得分:1)
这些天“它有一个模块”(以Oracle,MS SQL,Postgress,SQLite或任何PDO兼容格式等格式查询外部数据库)。这是Forena模块(披露:我是它的共同维护者)。
转到demo site以查看其工作情况,并参阅其community docu了解更多详情。以下是其文件中的引用:
...构建了使用SQL从数据库中获取数据并使用XHTML和CSS将其格式化为Web报告的想法。
它旨在利用HTML,CSS,SQL和JavaScript的现有知识来帮助您创建丰富的交互式Web报告。