小编Cam*_*ron的帖子

使用Twitter Bootstrap Typeahead处理对象

我正在使用Bootstrap Typeahead插件,如下所示:

$('#Organisation').typeahead({
            source: function (query, process) {
                return $.get(AppURL + 'Organisations/Manage/SearchByName/',
                {
                    term: query
                },
                function (data) {
                    var results = [];
                    var fullResults = [];
                    $.each(data, function (index, item) {
                        results.push(item.label);
                        fullResults.push({
                            id: item.ID,
                            label: item.label
                        });
                    });

                    return process(results);


                });
            },
            updater: function (selection) {
                $('#OrganisationID').val(selection);
            }
        });
Run Code Online (Sandbox Code Playgroud)

我有两个返回的数组,这是因为Typeahead只需要一个字符串列表而不是一个对象.第二个数组包含label和id.

一旦用户从列表中选择一个项目,我需要从该选择中获取ID,然后使用它插入隐藏字段.但选择将只是名称,因为ID不能通过Typeahead传递.

关于如何解决这个问题的任何想法?

两个返回数组的示例:

结果: ["Organisation 1","Organisation 2"]

fullResults: [{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}]

jquery bootstrap-typeahead

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

根据滚动方向和高度加载和删除内容页面

我有简单的数据网格,如下所示:

<div class="uiGridContent">
    <table>
        <tbody id="page-1">
             <tr>
                <td>Cell 1</td>
                <td>Cell 2</td>
                <td>Cell 3</td>
             </tr>
        </tbody>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

*请注意,我在uiGridContent div上方和下方的div中的单独表格中有一个页眉和页脚.这个例子不需要.

var nextPage = 1, lastScrollTop = 0, st;

$('.uiGridContent').scroll(function(){

    var st = $(this).scrollTop();

    // We're scrolling down
    if (st > lastScrollTop){

        if( $('.uiGridContent').scrollTop() + $('.uiGridContent').innerHeight() >= $('.uiGridContent')[0].scrollHeight && nextPage < 10) {

            $.ajax({
                url: '<?php echo $appurl; ?>?page=' + nextPage,
                success: function(data) {
                    nextPage = nextPage + 1;
                    var content = $(data).find('.uiGrid tbody').html();

                    $('.uiGridContent tbody').last().after('<tbody id="page-'+nextPage+'">'+content+'</tbody>');

                },
                error: function(data) {

                    alert(data); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

5
推荐指数
1
解决办法
479
查看次数

CakePHP 3.0查询字符串参数vs传递的参数

在CakePHP 3.0命名参数已被删除(感谢上帝),支持与其他应用程序框架内联的标准查询字符串参数.

我仍然在努力解决的问题是,在其他MVC框架中,例如ASP.NET,你将传递ActionResult中的参数(与函数相同):

Edit( int id = null ) {

    // do stuff with id

}
Run Code Online (Sandbox Code Playgroud)

并且该方法将作为查询字符串传递给id:/Edit?id=1并且您将使用路由使其非常类似于:/Edit/1.

在CakePHP中,但是在函数参数中传递的内容如下:

function edit( $id = null ) {

    // do stuff with $id

}
Run Code Online (Sandbox Code Playgroud)

必须作为传递参数完成,例如:/Edit/1绕过查询字符串的想法,以及路由以改进URL的需要.

如果我在该编辑的链接中命名params,如:

$this->Html->link('Edit', array('action' => 'edit', 'id' => $post->id));
Run Code Online (Sandbox Code Playgroud)

然后我必须这样做:

public function edit() {

    $id = $this->request->query('id');

    // do stuff with $id

}
Run Code Online (Sandbox Code Playgroud)

获取传递的参数id.想到它会在像CakePHP 3.0的ASP.NET中那样在功能中提取它,但事实并非如此.

我更喜欢在编辑链接中为传递的值添加前缀而不是仅仅传递它们,所以我不必在另一端担心序数,我知道它们是什么等等.

有没有人使用这些方法将数据传递给CakePHP中的方法,并且可以更好地了解正确的处理方式以及3.0版本中的更改将如何改善这一领域的内容......

php cakephp cakephp-3.0

5
推荐指数
1
解决办法
7784
查看次数

使用.htaccess从Apache上的CakePHP 2.x中删除或添加尾部斜杠

我正在尝试使用以下.htaccess中的以下内容强制删除或添加尾部斜杠到我的CakePHP 2.x应用程序/app/webroot.

#<IfModule mod_rewrite.c>
#    RewriteEngine On
#    RewriteCond %{REQUEST_FILENAME} !-d
#    RewriteCond %{REQUEST_FILENAME} !-f
#    RewriteRule ^ index.php [L]
#</IfModule>


<IfModule mod_rewrite.c>
# Add trailing slash
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|)$
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

或者以下用于添加尾部斜杠.

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
Run Code Online (Sandbox Code Playgroud)

但我不想强制执行域,因为它可能在本地或在子文件夹中运行.我该如何解决?我在网上看到的所有文档似乎都强制执行应用程序的完整网址.

事实上,即使我使用FULL url它仍然无法正常工作.有没有人设法让这个与CakePHP合作?似乎你必须通过index.php文件运行它

为了澄清我正在寻找一种解决方案,用于在CakePHP中添加和删除尾部斜杠,而无需将URL硬编码到.htaccess文件中.

apache .htaccess cakephp

5
推荐指数
1
解决办法
2212
查看次数

用香草 for 循环替换下划线或 lodash _.each

我想替换下面的代码,不再依赖_.each()underscore.js或lodash.js的功能:

function fset(data) {
    _.each(dataDefault, function(item, key) {
        var val = ( data[key] ? data[key] : dataDefault[key] );
        $rootScope.meta[key] = val;
    });
};
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想使用 vanilla JavaScript for 循环,但我不明白_.each()underscore/lodash 中的函数如何替换它......

就像是:

for(var i=0; i<data.length;i++) {
    var val = ( data[key] ? data[key] : dataDefault[key] );
    $rootScope.meta[key] = val;
}
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何以这种方式获得钥匙和物品......

dataDefault 好像:

var dataDefault = {
    title: null,
    description: null
};
Run Code Online (Sandbox Code Playgroud)

调用函数的一个例子是:

meta.fset({
    title: 'Hello world',
    description: 'DESC'
});
Run Code Online (Sandbox Code Playgroud)

javascript loops underscore.js ecmascript-6 lodash

5
推荐指数
1
解决办法
1053
查看次数

使用 NodeJS 列出正在运行的应用程序

使用 NodeJS 我想获取 Windows 上打开的应用程序列表。

类似的东西:

exec("tasklist", function (error, stdout, stderr) {

    for(var i=0;i<stdout.length;i++)
    {
        if( stdout[i]['name'].indexOf('ll_') > -1 )
        {
            appList.push({'id':stdout[i]['id'],'name':stdout[i]['name']});
        }
    }

});
Run Code Online (Sandbox Code Playgroud)

如果appList应用程序的 ID 和名称以ll_.

我怎样才能做到这一点?

node.js

5
推荐指数
1
解决办法
4715
查看次数

设置视图并触发在mapbox中从外部HTML单击标记

我有一些外部HTML(由GeoJSON生成),其中包含地图上的标记列表.项目的示例是:

<ul id="marker-list">
    <li data-lat="53.3895673" data-lng="-1.4725166">Marker 1</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

然后我有以下jQuery监听其中一个项目的click事件,然后应该关注这些坐标并触发标记上的click事件(打开它的弹出窗口).

$(document).on('click', '#marker-list li', function(e){
    e.preventDefault();
    var latlngPoint = new L.latLng($(this).attr('data-lat'), $(this).attr('data-lng'));
    map.setView(latlngPoint, 18);
    map.fireEvent('click', {
        latlng: latlngPoint,
        layerPoint: map.latLngToLayerPoint(latlngPoint),
        containerPoint: map.latLngToContainerPoint(latlngPoint)
    });
});
Run Code Online (Sandbox Code Playgroud)

setView工作正常,但弹出窗口没有被打开...

添加:

map.on('click', function(e){
   console.log(e);
});
Run Code Online (Sandbox Code Playgroud)

显示click事件被触发,但它不会导致弹出窗口打开...如何让弹出窗口打开?有没有办法定位标记?

javascript jquery mapbox

5
推荐指数
1
解决办法
690
查看次数

Rails 重定向没有历史记录

我们的 Rails 应用程序中有一个页面,当用户提交表单时,我们希望将他们重定向到其他地方,如果他们单击浏览器中的后退按钮,则不会将他们带回到上一页。

在这种情况下使用redirect_to our_new_path因此 不起作用。

我们的解决方案是使用 JavaScript 来处理它。所以我们使用 AJAX 提交表单,然后 Rails 会像这样响应:

render json: { redirect: our_new_path }

然后我们用响应进​​行替换,这样它就不会创建历史记录:

(data) => window.location.replace(data.redirect)

然而,我们真的不喜欢为此依赖 JavaScript...是否可以在 Rails 中使用 HTTP 重定向进行重定向而不创建历史记录?

ruby-on-rails

5
推荐指数
0
解决办法
274
查看次数

如果使用jQuery检查单选按钮,则显示框

我有以下代码:

    <fieldset>
        <legend>Do you currently have SolidWorks</legend>

        <ul>
            <li><label for=""><input type="radio" name="solidworks" value="Yes" id="rdYes" /> Yes</label></li>
            <li><label for=""><input type="radio" name="solidworks" value="No" id="rdNo" /> No</label></li>
        </ul>
    </fieldset>

    <fieldset id="boxReseller" style="display:none;">
        <legend>Who is your SolidWorks reseller?</legend>
        <ul>
            <li><label for=""><input type="radio" name="reseller" value="Cad Connect" /> Cad Connect</label></li>
            <li><label for=""><input type="radio" name="reseller" value="Cadtek" /> Cadtek</label></li>
            <li><label for=""><input type="radio" name="reseller" value="CCSL" /> CCSL</label></li>
            <li><label for=""><input type="radio" name="reseller" value="Innova" /> Innova</label></li>
            <li><label for=""><input type="radio" name="reseller" value="NT CAD/CAM" /> NT CAD/CAM</label></li>
            <li><label for=""><input type="radio" name="reseller" value="Solid Engineer" …
Run Code Online (Sandbox Code Playgroud)

jquery button show hide radio

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

使用cookie进行简单的PHP登录

我已经开始开发这个非常简单的PHP登录,要求输入密码才能访问网站.它还会创建一个cookie,以便在用户关闭浏览器窗口之前继续访问.

在每个页面的顶部,我检查cookie:

<?php

    if(!isset($_COOKIE['authorised']) || ($_COOKIE['authorised'] != 'true'))
    {
        include('login.php'); exit;
    }

?>
Run Code Online (Sandbox Code Playgroud)

如果没有,那么我退出并显示登录表单:

<?php

    function pageURL()
    {
        $pageURL = 'http';
        if ($_SERVER["HTTPS"] == "on")
        {
            $pageURL .= "s";
        }
        $pageURL .= "://";
        if ($_SERVER["SERVER_PORT"] != "80")
        {
            $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
        } 
        else
        {
            $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
        }
        return $pageURL;
    }

    $pageRedirect = pageURL();

    if(isset($_POST['password']) && ($_POST['password'] == 'qwe123'))
    {
        setcookie('authorised', 'true'); header("Location:$pageRedirect",303);
    }
    else
    {
        include('noaccess.php'); exit;
    }

?>
<form action="<?php echo pageURL(); ?>" method="post">
<input type="password" name="password" /> …
Run Code Online (Sandbox Code Playgroud)

php

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