我对JQuery很陌生,也许还试图为初学者创造一些可能更难实现的东西.但是,我正在尝试创建一个自动完成,将当前值发送到PHP脚本,然后返回必要的值.
这是我的Javascript代码
$("#login_name").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://www.myhost.com/myscript.php",
dataType: "jsonp",
success: function(data) {
alert(data);
response($.map(data, function(item) {
return {
label: item.user_login_name,
value: item.user_id
}
}))
}
})
},
minLength: 2
});
Run Code Online (Sandbox Code Playgroud)
这是"myscript.php"的后半部分
while($row = $Database->fetch(MYSQLI_ASSOC))
{
foreach($row as $column=>$val)
{
$results[$i][$column] = $val;
}
$i++;
}
print json_encode($results);
Run Code Online (Sandbox Code Playgroud)
这产生以下输出
[{"user_id":"2","user_login_name":"Name1"},{"user_id":"3","user_login_name":"Name2"},{"user_id":"4","user_login_name":"Name3"},{"user_id":"5","user_login_name":"Name4"},{"user_id":"6","user_login_name":"Name5"},{"user_id":"7","user_login_name":"Name6"}]
Run Code Online (Sandbox Code Playgroud)
谁能告诉我哪里出错了?开始变得非常沮丧.输入框只是变为"白色",没有显示任何选项.如果我指定一个值数组,代码确实有效.
更新 我已将代码更改为仍然没有运气.
$("#login_name").autocomplete({
source: "/ajax/login_name.php",
dataType: "json",
minLength: 2,
cache: false,
select: function(event, ui) {
alert(ui);
}
});
Run Code Online (Sandbox Code Playgroud)
使用FireFox的Web Developer工具,我收到错误"b为null".
在阅读并评论这个问题PHP库以保持您的网站索引由谷歌,Bing等,我很好奇看看StackOverFlow的站点地图.这返回了一个404错误,我猜测它只是一个受保护的页面,通过确定你是一个索引机器人还是根本不存在.
然后引导我查看StackOverFlow 的robots.txt.我很惊讶地看到评论"Yahoo bot is evil"以及其他一些Indexing机器人(Spinn3r和KSCrawler).我对Spinn3r和KSCrawler不感兴趣,但我的问题是,为什么这些机器人(特别是雅虎)被认为是邪恶的?当然任何搜索引擎的索引都是好事吗?
我在SOF上看到了一些答案,但其中大多数都关注子域的使用,其中没有一个对我有用.常见的是使用session.cookie_domain,根据我的理解,只能使用子域.
我感兴趣的是一个处理完全不同域的交易的解决方案(并包括子域的可能性).不幸的是,项目截止日期是他们的,时间不在我身边,所以我转向SOF的专业知识和经验.
当前项目简介是能够登录到当前仅存储user_id在会话中的一个站点,然后能够在同一服务器环境中的不同域上检索此值.会话数据是从作为session id主键的数据库中存储/检索的.
我希望找到一个"轻松"和"轻松"实施解决方案.
该系统正在使用内部模型视图控制器设计模式,因此所有请求(包括不同的域)都通过单个引导脚本运行.使用域名作为变量,这将确定要向用户显示的上下文.
确实看起来有潜力的一个选项是使用隐藏图像并使用alt标签来设置user id.我的第一印象表明,这似乎"太容易"(如果可能的话)并且充满了安全漏洞.涉诉?
我考虑的另一个选项是使用IP和用户代理进行身份验证,但我觉得由于共享网络和更改IP地址,这不会是一个可靠的选择.
我考虑过但尚未见过的第三个选项(也是首选)是htaccess用来欺骗用户认为当inform apache重定向时他们在不同的域上; 就像是
www.foo.com/index.php?domain=bar.com&controller=news/categoires/1
但是向用户显示为
www.bar.com/news/categories/1
foo.com表示所有请求都通过的"主站点域",并且bar.com是用户认为他们正在访问的域.控制器请求指示所请求的页面和视图.这可能吗?
还有其他选择吗?优点缺点?
提前致谢!!!
我想列出所有用户的corropsonding用户类.这是我的表的简化版本
CREATE TABLE users (
user_id INT NOT NULL AUTO_INCREMENT,
user_class VARCHAR(100),
PRIMARY KEY (user_id)
);
INSERT INTO users VALUES
(1, '1'),
(2, '2'),
(3, '1,2');
CREATE TABLE classes (
class_id INT NOT NULL AUTO_INCREMENT,
class_name VARCHAR(100),
PRIMARY KEY (class_id)
);
INSERT INTO classes VALUES
(1, 'Class 1'),
(2, 'Class 2');
Run Code Online (Sandbox Code Playgroud)
这是我试图使用的查询语句,但只返回第一个匹配的用户类,而不是希望的连接列表.
SELECT user_id, GROUP_CONCAT(DISTINCT class_name SEPARATOR ",") AS class_name
FROM users, classes
WHERE user_class IN (class_id)
GROUP BY user_id;
Run Code Online (Sandbox Code Playgroud)
实际产出
+---------+------------+
| user_id | class_name |
+---------+------------+
| 1 …Run Code Online (Sandbox Code Playgroud) 我目前正在为个人项目开发PHP MVC框架.在我开发框架的同时,我有兴趣通过实现不同的优化技术来看到任何显着的性能.我已经实现了一个粗略的BenchMark类来记录mircotime.
问题是我没有执行时间的参考框架.我非常接近这个项目的开始,有一个数据库连接和一些查询但没有输出(禁止一些调试文本和BenchMark日志).我当前的执行时间是0.01917 seconds.
我期待这个更低,但正如我之前所说,我没有参考框架.我很欣赏在演出时要考虑很多变量,但我希望找到某种指标
来衡量a)测量性能的技术,例如每秒的请求数,以及
b)例如比较结果; "标准"Web服务器上的"适度"大小的PHP应用程序将如何执行.我理解"适度"和"标准"是非常主观的词,因此可能是特定应用程序的已知执行时间表(例如StackOverFlow的执行时间).
除了执行时间之外,还有哪些其他测量性能的技术?
在查看MVC框架性能比较时,它讨论了每秒请求数(RPS).这是怎么计算的?我猜我当前的执行时间0.01917 seconds可以处理52 RPS (= 1 / 0.01917 ).这似乎明显低于图表上引用的内容,尤其是当您考虑我目前有限的功能时.
php ×3
.htaccess ×1
autocomplete ×1
benchmarking ×1
bots ×1
database ×1
dns ×1
group-concat ×1
indexing ×1
jquery ×1
json ×1
metrics ×1
mysql ×1
optimization ×1
performance ×1
session ×1
shared ×1