从DB中检索而不使用onfocus单击任何按钮

时间:2013-05-28 22:49:13

标签: php javascript html

嗨我的代码有问题!

当用户在此文本框中写入时,我有一个文本框我想直接从DB中检索而不点击任何按钮。

然后我的一些表格将在写入此文本框后完成。

我的JS代码:

function centerIDfocus()
{
var id = document.getElementById("centerID").value;
var data = <?php $center_ID = echo mysql_num_rows(mysql_query("SELECT * FROM 'examcenter' WHERE 'id' = '".id."'"));  ?> ;

}
window.onload = addEventsToHTML;   

以我的形式:

<input name="centerID" id="centerID"  onfocus="centerIDfocus();">   

这不起作用!  任何想法红脸

4 个答案:

答案 0 :(得分:0)

你混合了两种语言 - 在客户端运行javascript,在服务器端运行php。 你需要做的是:

var data = function_to_get_data(); // in javascript

在该函数中调用ajax请求到你的php脚本的地址 - 并且只在那个php脚本中调用你的数据库来返回所需的数据

答案 1 :(得分:0)

你的PHP代码只会运行一次,当页面被加载后,它将不再运行,因为服务器端没有任何事情发生。如果你想在每次获得焦点时运行它,那么你应该使用AJAX。

看看AJAX获取,我很确定这就是你想要的: http://api.jquery.com/jQuery.get/

答案 2 :(得分:0)

很难知道你打算做什么,但是......

我的猜测是,当事情发生时和“onfocus”被触发时你会感到困惑。

在构建页面时,PHP在服务器上运行。相比之下,javascript在浏览器中运行,或者在构建的页面到达(onload)之后或者响应用户点击或其他事件(例如onfocus)。

因此,javascript(在浏览器中)无法放入PHP(在服务器上)。出于同样的原因(和安全性),javascript不可能直接与数据库通信。

您可能采取两种方法来做(我认为)您尝试做的事情。

您可以在PHP中创建一个javascript数组,按ID索引,并包含所有可能的ID及其数据。使用PHP读取数据库,然后回显javascript以定义数组。这将成为发送页面的一部分。然后,为了响应意味着您要填充字段的事件,您从数组中提取数据,并将其放在您想要的位置。这对于加载页面来说会很慢,但是对触发更改的点击响应非常快。

另一种方法是使用ajax。最简单的方法是使用jquery向服务器发送GET请求,请求与ID相关的数据。服务器必须通过提取ID,读取数据库并生成回复来响应该URL。我建议使用JSON。然后,当jquery请求返回时,javascript代码可以将数据从JSON移动到您的字段中。这会使初始页面变亮,但触发点击会有一个提取延迟。

但是我认为您可能还有焦点事件的问题。当用户在输入任何数据之前将光标移动到字段中时,将触发此操作。此时它将包含HTML中设置的数据。如果可以在该点设置ID,还可以将其设置为数据库中的数据。

我认为您需要两个字段 - 一个用于ID,另一个用于查找数据。然后在ID字段上的onblur事件上运行javascript。

希望有所帮助。

答案 3 :(得分:0)

使用类似的东西:

$('.centerID').keyup(function(){
    var val = this.val();
    var url = '/do.php'; // url to a php script
    var val = 'action=checkValue&value='+val; // send it the value
    $.getJSON(url, val, function(data){
        // Something to do when you get the data back
    });
});

然后只需创建一个检查数据库并返回JSON答案的php脚本,然后随意使用它。

BTW - 我假设你可以使用jQuery。您也可以将此应用于JavaScript。

我使用keyup()作为一个例子,但你可以将它应用于keydown(),click(),focus(),focusout()等......

我有一个do.php脚本,其中包含一个switch语句,其可能值为action =并返回JSON。从登录,注册,活动监控到更新数据库字段而不离开页面的所有内容。