我正在创建一个管理页面,其中我有多个文本框。当我在一个文本框中输入用户ID时,我想在管理员移动到下一个文本框时在下一个文本框中显示用户名。为此,我可以使用ajax
还是javascript
?哪一个会更好?我怎么能通过javascript来做到这一点。
答案 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。
然后,为了简化您的任务,最好使用jQuery或mootools等javascript框架。
我个人建议使用jQuery。
答案 3 :(得分:0)
使用AJAX-Call从服务器端脚本(此处为php)获取所需数据,并将调用结果插入所需的文本框中。
答案 4 :(得分:0)
最好使用Mootools,jQuery,YUI或任何其他js框架来执行Ajax请求。这将缩短您的开发时间。有关更多信息,请查看jQuery的apis:
答案 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});