0

嗨,我的代码有问题!

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

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

我的 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

4 回答 4

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 脚本,然后随心所欲地使用它。

顺便说一句 - 我假设你可以使用 jQuery。你也可以将它应用到你的 JavaScript 中。

我以 keyup() 为例,但您可以将其应用于 keydown()、click()、focus()、focusout() 等...

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

于 2013-05-28T23:54:01.947 回答
0

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

var data = function_to_get_data(); // in javascript

在该函数中调用 ajax 请求到您的 php 脚本的地址 - 并且仅在该 php 脚本中调用您的数据库以返回所需的数据

于 2013-05-28T22:55:00.863 回答
0

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

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

于 2013-05-28T22:58:59.363 回答
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。

希望有帮助。

于 2013-05-28T23:18:13.193 回答