小编GSt*_*Sto的帖子

PHP在连接键时将嵌套数组转换为单个数组?

这是一个示例数组:

 $foo = array(
           'employer' => array(
                    'name' => 'Foobar Inc',
                    'phone' => '555-555-5555'
                     ),
           'employee' => array(
                    'name' => 'John Doe',
                    'phone' => '555-555-5556',
                    'address' => array(
                           'state' => 'California',
                           'zip' => '90210'
                        )
                    ),
           'modified' => '2009-12-01',
         );
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的结果:

$fooCompressed = array(
             'employer_name' => 'Foobar Inc',
             'employer_phone' => '555-555-5555',
             'employee_name' => 'John Doe',
             'employee_phone' => '555-555-5556'
             'employee_address_state' => 'California',
             'employee_address_zip' => '90210',
             'modified' => '2009-12-01'
             )
Run Code Online (Sandbox Code Playgroud)

我将如何编写递归函数来处理这个问题?

php arrays recursion multidimensional-array

9
推荐指数
2
解决办法
4901
查看次数

在CodeIgniter中制作管理页面的最佳方法?

我正在使用CodeIgniter中的一个应用程序,我希望在应用程序中有几个对象的管理页面,我想知道将这些应用程序放入MVC结构的更好方法是什么.

想法1: 在每个控制器中,有一个管理功能,并将我想要的所有管理页面添加到该功能中.示例网址:domain.com/articles/admin

想法2创建 一个新的管理控制器,它必须引用许多不同的模型,并将所有管理页面放在那里.示例网址:domain.com/admin/articles

哪种方式会更好?

编辑以供说明:通过管理功能,我的意思是能够对任何对象执行基本的CRUD操作,并能够显示所有所述对象的列表.

php codeigniter access-control

8
推荐指数
2
解决办法
1万
查看次数

将焦点移至特定字段

我有一个按钮,将在页面上添加显示表单.如何在单击该按钮时将焦点移动到表单的第一个字段?

简单的例子:

HTML:

<form style="display:none;" id="newForm">
   <input type="text" id="firstField">
</form>
<input type="button" id="showForm" value="add new">
Run Code Online (Sandbox Code Playgroud)

jQuery的:

 $("#showForm").click(function(){
     $("#newForm").show();
     //move focus??
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery

8
推荐指数
2
解决办法
6118
查看次数

何时使用'if ... else if'以及何时使用

1)我知道if…else if语句是如何工作的,但在下一个例子中,就结果值而言,两种方法都是相同的.那么我使用的两种方法中的哪一种或者我应该总是选择一种在语义上最接近代码尝试的方法(这里我猜这两种方法在语义上是完全不同的)?那么你会使用哪种方法?为什么?

protected string GetNumberDescription(int value)
{
    if (value >= veryBigNumber)
        return veryBigNumberDescription;
    else if (value >= bigNumber)
        return bigNumberDescription;
    else if (value >= smallNumber)
        return smallNumberDescription;
    else
        return "";
}

protected string GetNumberDescription(int value)
{
    if (value >= veryBigNumber)
        return veryBigNumberDescription;
    if (value >= bigNumber)
        return bigNumberDescription;
    if (value >= smallNumber)
        return smallNumberDescription;
    else
        return "";
}
Run Code Online (Sandbox Code Playgroud)

2)我注意到在编写if ... else if语句时丢失的代码使用以下格式:

if ...
else if ...
else ...
Run Code Online (Sandbox Code Playgroud)

但不是(至少在概念上)更正确的方式:

if ...
else
  if ...
  else …
Run Code Online (Sandbox Code Playgroud)

c# coding-style

8
推荐指数
8
解决办法
3574
查看次数

如何在Codeigniter迁移文件中添加十进制字段?

在编写codeigniter迁移时,我不确定如何添加十进制类型的字段.具体来说,您如何定义允许的元素的大小?例如,如何定义要传递的数组dbforge->add_field()以创建如下字段:

price decimal(10,2) not null default 0.00
Run Code Online (Sandbox Code Playgroud)

migration codeigniter

8
推荐指数
2
解决办法
4094
查看次数

使用socket io向所有浏览器发送消息

我正在搞乱socket.io和node.js,并想知道如何完成以下操作:我有一个简单的表单,它将一个文本字符串发送到服务器,然后服务器将其发送回来,并将其附加到div .我想要做的是为所有浏览器中的所有用户提供div更新,目前它只更新发送消息的那个用户.

来自app.js(node.js服务器)的代码:

io.sockets.on('connection', function(socket) {
    socket.on('send_message', function(data) {
    data.message = data.message + ' yo<br/>';
    socket.emit('get_message',data);
    });
}); 
Run Code Online (Sandbox Code Playgroud)

客户端的代码:

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
    <script src="/socket.io/socket.io.js"></script>
    <script>
    $(document).ready(function() {
    var socket = io.connect('http://localhost:3000');

    $('#sender').live('click',function() {
            var user_message = $('#message_box').val()
            socket.emit('send_message',{message: user_message});
    });

    socket.on('get_message', function(data) {
        $('#data').append(data.message);
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

和HTML:

<div id='data'></div>
<input type='text' id='message_box' placeholder='send message'>
<button id='sender'>Send Message</button>
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能将消息发送到多个浏览器?

node.js socket.io

7
推荐指数
1
解决办法
1万
查看次数

滚动条没有出现在新窗口中

我正在尝试打开一个新窗口,由于某种原因,滚动条不会出现在Firefox或IE中,但在Chrome和Opera中可以正常工作.

这是按钮上的javascript代码(来自PHP脚本),下面,如果它更具可读性,则输出的HTML:

window.open('".BASE_URL."utils/viewProfile.php?key=".$key."',null,'width=1280,height=1024,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbar=1,resizable=1')"

<input class="input-button btn_generic_nav6up" type="button" onclick="window.open('https://domain.com/utils/viewProfile.php?key=8UjKKydCyTx1V7E2A0xklA%3D%3D',null,'width=1280,height=1024,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbar=1,resizable=1')" value="view profile" />
Run Code Online (Sandbox Code Playgroud)

javascript firefox

6
推荐指数
1
解决办法
1万
查看次数

在jquery对象的集合上使用underscore.js列表函数

我正在使用一个同时使用jQuery和underscore.js的应用程序.我希望能够使用一些下划线的迭代器函数,例如any()all()jQuery对象的集合.有没有办法做到这一点?我想做类似以下的事情:

checkboxes = $("input[type=checkbox]");
_.filter(checkboxes, function(box) {
    return box.is(":checked");
});
Run Code Online (Sandbox Code Playgroud)

但这会引发错误:

Uncaught TypeError: Object #<HTMLInputElement> has no method 'is'
Run Code Online (Sandbox Code Playgroud)

所以我假设在这种情况下框不像jQuery对象.

javascript jquery underscore.js

6
推荐指数
1
解决办法
3216
查看次数

ruby datamapper不会加载

我试着通过以下教程了解Sinatra ruby​​框架:

http://net.tutsplus.com/tutorials/ruby/singing-with-sinatra-the-recall-app-2/

然而,在运行gem安装并在test.rb中编写一个简单的sinatra服务器后,如下所示:

require 'sinatra'
require 'datamapper'

get '/' do 
  "Hello, World!"
end
Run Code Online (Sandbox Code Playgroud)

但是当我运行命令时ruby test.rb,我收到以下错误:

/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- datamapper (LoadError)
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from datamapper_test.rb:2:in `<main>'
glenn@ubuntu:~/Dropbox/Repositories/sandbox/sinatra$ ruby datamapper_test.rb 
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- datamapper (LoadError)
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from test.rb:3:in `<main>'
Run Code Online (Sandbox Code Playgroud)

好像它找不到datamapper gem.我怎样才能解决这个问题?

编辑:使用ruby 1.9.2

编辑(再次) :( parital)输出gem list:

data_mapper (1.2.0)
data_objects (0.10.8)
datamapper (1.2.0)
devise (1.4.5)
directory_watcher (1.4.0)
dm-aggregates (1.2.0)
dm-constraints (1.2.0)
dm-core (1.2.0) …
Run Code Online (Sandbox Code Playgroud)

ruby gem ruby-datamapper

6
推荐指数
1
解决办法
4863
查看次数

将目录中的所有文件复制到linux中的本地子目录

我有一个具有以下结构的目录:

file_1
file_2
dir_1
dir_2
# etc.
new_subdir
Run Code Online (Sandbox Code Playgroud)

我想将位于此目录中的所有现有文件和目录复制到 new_subdir. 如何通过 linux 终端完成此操作?

linux bash

6
推荐指数
2
解决办法
1万
查看次数