如何通过javascript访问数据库?

时间:2010-06-07 06:20:49

标签: php javascript ajax

我正在创建一个管理页面,其中我有多个文本框。当我在一个文本框中输入用户ID时,我想在管理员移动到下一个文本框时在下一个文本框中显示用户名。为此,我可以使用ajax还是javascript?哪一个会更好?我怎么能通过javascript来做到这一点。

8 个答案:

答案 0 :(得分:3)

<script>
    function showUser(str) {
        if (str=="") {
          document.getElementById("spName").innerHTML="";
          return;
        } 

        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 (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("spName").innerHTML=xmlhttp.responseText;
          }
        }

        xmlhttp.open("GET","getUserName.php?q="+str,true);
        xmlhttp.send();
    }
</script>

getUsreName.php

<?php

$q=$_GET["q"];

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="pnpdb"; // Database name 

// Connect to server and select databse.
$link = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name",$link)or die("cannot select DB");


$sql="SELECT name FROM tblprofile WHERE userId = '".$q."'";

$result = mysql_query($sql);

$row = mysql_fetch_array($result);

$name =$row['name'];

if($name == '' || empty($name)) {
  echo "<b>ID not found.</b>";
} else {
  echo "<b>".$name."</b>";
}

mysql_close($link);
?>

答案 1 :(得分:2)

您无法通过Javascript直接访问数据库。

您可以使用AJAX来调用查询数据库的服务器端(例如PHP)页面

答案 2 :(得分:2)

答案是AJAX,但首先,如果你理解AJAX是什么,那就更好了:异步JavaScript和XML。 然后,为了简化您的任务,最好使用jQuerymootools等javascript框架。
我个人建议使用jQuery。

答案 3 :(得分:0)

使用AJAX-Call从服务器端脚本(此处为php)获取所需数据,并将调用结果插入所需的文本框中。

答案 4 :(得分:0)

最好使用Mootools,jQuery,YUI或任何其他js框架来执行Ajax请求。这将缩短您的开发时间。有关更多信息,请查看jQuery的apis:

http://api.jquery.com/category/ajax/

答案 5 :(得分:0)

无论如何,您将需要使用ajax,即9 / 10th的javascript。我建议使用JS框架,这样您就不必为不同的浏览器编写代码。然后,您将需要在服务器端处理请求并向您吐出所需数据的内容。流行的格式是XML(ajax中的x),JSON或简单的HTML。无论哪种方式,您都需要一个javascript回调来处理结果(或错误条件,不要忘记)并填充您的文本框。我个人更喜欢只返回HTML片段,但如果你有一个框架机会,你会发现它中的XML和JSON处理,所以发疯了。

答案 6 :(得分:0)

不需要ajax或javascript 只需按字母顺序列出所有具有编辑页面链接的用户。您还可以在此页面中添加一个带有单个文本框的表单,以手动输入用户ID 链接和表单都指向编辑页面,该页面使用查询字符串中的userid来检索用户detais。

答案 7 :(得分:0)

第一步是创建一个PHP脚本,它将可解​​析的数据发送到JavaScript。 不允许JavaScript将原始SQL查询传递给PHP。

<?php
$sqlGetName = $mysqli->prepare("SELECT id, name FROM users WHERE id=?");
$sqlGetName->bind_param("i", $_GET['id']);
$sqlGetName->execute();

$result = array('success' => false, 'id' => null, 'name' => null);

$sqlGetName->bind_result($result['id'], $result['name']);

if($sqlGetName->fetch()) {
  $result['success'] = true;
}

echo json_encode($result);

然后使用JavaScript获取值。为简单起见,下面的示例使用MooTools库,但可以使用其他库或普通的常规JavaScript来完成。

var jsonRequest = new Request.JSON({url: 'get_user.php',
  onSuccess: function(result) {
    if(result.success) {
      alert(result.id + ': ' + result.name);
    } else {
      alert('Not Found');
    }
  }
});

jsonRequest.get({'id': 3});