我正在使用jQuery Table to CSV Plugin.我已经更改了弹出窗口,以便它告诉浏览器下载CSV文件.
它是:
function popup(data) {
var generator = window.open('', 'csv', 'height=400,width=600');
generator.document.write('<html><head><title>CSV</title>');
generator.document.write('</head><body >');
generator.document.write('<textArea cols=70 rows=15 wrap="off" >');
generator.document.write(data);
generator.document.write('</textArea>');
generator.document.write('</body></html>');
generator.document.close();
return true;
}
Run Code Online (Sandbox Code Playgroud)
我已将其更改为:
function popup(data) {
window.location='data:text/csv;charset=utf8,' + encodeURIComponent(data);
return true;
}
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下都有效.它仍然需要您找到您的电子表格软件,并创建自己的文件名...因为它会创建一个奇怪的文件名(例如:14YuskG_.csv.part).
关于如何改进这个的任何建议?
我已经为jquery的验证器插件创建了一个方法,它的工作方式类似于远程规则.不同之处在于我想显示动态错误消息(基于ajax响应).
jQuery.validator.addMethod("duplicate", function(value, element, params) {
var object_settings = this.settings;
params.data[$(element).attr("name")] = value;
$.post(params.url, params.data, function(response) {
if (response == 'true'){ return true; }
else {
object_settings.messages[element.name] = response;
return false;
}
}, 'text');
}, '');
Run Code Online (Sandbox Code Playgroud)
它工作......有点....它设置消息,但最初不显示它(如果你第二次验证字段,则显示消息).
有什么建议?
(也许远程规则提供此功能......我在文档中找不到任何内容)
找到一个不错的下拉菜单:
演示:http : //www.jqueryload.com/examples/menu/
HTML、CSS 和 JavaScript:http : //www.jqueryload.com/jquery-dropdown-menu-with-google-style
我已将主菜单与浏览器窗口的右侧对齐。我想让选定的下拉菜单向左打开(如示例中所示,下拉容器比主菜单选择器宽)。换句话说,我希望有镜像。
这个菜单可以更新为我希望的那样工作吗?
我遇到以下代码问题:
Options FollowSymLinks
RewriteEngine on
RewriteRule ^thing/([^/]+)/?$ index.php?t=$1 [B]
Run Code Online (Sandbox Code Playgroud)
我收到"500内部服务器错误"
错误日志说:
RewriteRule: unknown flag 'B'
Run Code Online (Sandbox Code Playgroud)
我检查了我的Apache版本:
[root@server ~]# httpd -v
Server version: Apache/2.2.3
Server built: Jan 21 2009 22:00:55
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
(注意:页面加载没有[B]标志)
苦苦挣扎着写这段代码.
我正在尝试计算2个物体的最高值.我开始单独的"S"和"P"对象:
var S = [
{ id: '1', value: '##' },
{ id: '2', value: '##' },
{ id: '3', value: '##' },
{ id: 'N', value: '##' }
];
var P = [
{ id: '1', value: '##' },
{ id: '2', value: '##' },
{ id: '3', value: '##' },
{ id: 'N', value: '##' }
];
Run Code Online (Sandbox Code Playgroud)
我创建了第3个对象:
var myobject = {
'S1' = {
'P1' = '25',
'P2' = '32',
'P3' = '65',
'PN' = '##' …Run Code Online (Sandbox Code Playgroud) 我一直在阅读和学习面向对象的编程(首先面向对象的分析和设计以及代码完成:软件构建的实用手册 - 感谢StackOverflow上的建议).我也一直在学习如何使用几个PHP MVC框架(特别是Codeigniter和Kohana).
我读过的一些面向对象的主体由MVC框架以不同的方式处理.我想我已经设法理解了差异和做出决定的原因(完整且易于使用的解决方案),但我想测试我的假设...所以如果你要幽默我......请评论或纠正.
假设#1:
考虑到Web应用程序的正确抽象,包含类库的目录应位于包含演示文件的目录之外.该组织遵守DRY("不要重复自己")主体,允许多个演示文件夹(www.domain.com,management.domain.com,api.domain.com等)使用相同的对象.
假设#2:
如果您的所有类都位于演示文件夹之外,那么MVC实现中的模型只使用这些类的实例.如果这是真的,那么MVC框架只是一个表示类(控制器),它有助于管理输入(GET和POST请求),响应(模型或实例)和输出(视图或模板).
假设#3:
如果MVC框架只是一个表示类,那么控制器实例初始化的数据库类会破坏控制器类的抽象.一个(控制器实例的)模型不应该有一个("有一个")数据库,它应该有一个来自类库的东西(用户,产品),那个东西应该有一个数据库.
假设#4:
此外,如果MVC框架只是一个表示类,则控制器实例初始化的数据库类与控制器类紧密耦合.从一种存储方法改为另一种存储方法需要对所有模型进行重新分解.
假设#5:
使用HMVC框架时,包含数据库的控制器的问题更严重,因为您的模型更多模块(更多模型,更多重新分解).
更新:
对不起,我可能已经使用了一些松散的控制器和模型这两个术语......也许这说明了紧耦合.我混淆的根源来自数据库类语法.
有了模型,不应该是:
$user = new User($id);
$data['name'] = $user->getName();
$data['title'] = $user->getTitle();
return $data
Run Code Online (Sandbox Code Playgroud)
代替:
$query = $this->db->get_where('user', array('id' => $id), 1, 0);
$row = $query->row_array();
$data['name'] = $row['name'];
$data['title'] = $row['title'];
return $data
Run Code Online (Sandbox Code Playgroud) 我创建了一个包含标题,侧边栏和页脚的Display对象:
class Display {
protected $framework;
public $mysql;
public function __construct() {
$this->mysql = new MySQL();
$this->framework .= $this->header();
$this->framework .= $this->body();
$this->framework .= $this->sidebar();
$this->framework .= $this->footer();
}
private function header (){ /* blah */ }
private function body (){ }
private function sidebar (){ /* blah */ }
private function footer (){ /* blah */ }
public function displayPage(){
print $this->framework;
}
}
Run Code Online (Sandbox Code Playgroud)
在每个页面上,我创建了一个扩展Display对象的对象,其中包含body的代码:
class IndexPHP extends Display {
public function body(){
$this->user = new User();
return '<div …Run Code Online (Sandbox Code Playgroud) javascript ×2
jquery ×2
oop ×2
apache2 ×1
codeigniter ×1
css ×1
kohana ×1
logic ×1
mod-rewrite ×1
php ×1
validation ×1