小编Gaz*_*ion的帖子

如果我希望它与PDO接受INT和NULL,如何绑定值?

$stmt = $dbh->prepare( 'SELECT id, name FROM folders WHERE parent_folder_id = :id' );
$stmt->bindValue( ':id', $folder_id, PDO::PARAM_INT );
Run Code Online (Sandbox Code Playgroud)

我有上面的代码.如果文件夹具有parent_folder_id,则表示它位于另一个文件夹中.如果此列为NULL,则表示它是根文件夹.

根据我的理解,如果$ folder_id为NULL,那么它会将其视为0(因此我得到的代码没有结果,因为该列中的值为NULL而不是0).如果我将第三个参数更改为PDO :: PARAM_NULL,我仍然没有得到任何结果.我相信这是因为它将查询评估为"WHERE parent_folder_id = NULL",它与"WHERE parent_folder_id为NULL"不相同.

有没有办法让PDO正确处理这个问题,或者我应该用内联创建我的SQL语句,如果用"is"更改"="并将bindValue第三个参数与正确的参数交换?

php sql pdo

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

jQuery对话框中的CKEditor实例

我正在使用jQuery打开一个对话框窗口,其中textarea转换为CKEditor的实例.我使用的是由CKEditor的团队提供的jQuery的适配器,但是当对话窗口打开了,我不能与编辑器进行交互(它的创建,但"空"是写在内容空间,我可以不点击任何东西,或修改内容).

这个错误报告似乎说通过使用补丁提供问题是固定的,但它似乎并没有为我工作...

这是我的代码(也许我以编程方式做错了):

HTML:

<div id="ad_div" title="Analyse documentaire">
<textarea id="ad_content" name="ad_content"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)

我的包括(所有内容都包含正确,但也许包括订单问题?):

<script type="text/javascript" src="includes/ckeditor/ckeditor.js"></script>
<link rel="stylesheet" type="text/css" href="includes/jquery/css/custom-theme/jquery-ui-1.7.2.custom.css" />
<script type="text/javascript" src="includes/jquery/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="includes/jquery/js/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="includes/jquery/plugins/dialog-patch.js"></script>
<script type="text/javascript" src="includes/ckeditor/adapters/jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$('#ad_content').ckeditor();

/* snip */

$('#ad_div').dialog(
{
    modal: true,
    resizable: false,
    draggable: false,
    position: ['center','center'],
    width: 600,
    height: 500,
    hide: 'slide',
    show: 'slide',
    closeOnEscape: true,
    autoOpen: false
});

$('.analyse_cell').click(function(){
    $('#ad_div').dialog('open');
});
Run Code Online (Sandbox Code Playgroud)

编辑:经过一些进一步的测试后,我注意到按下工具栏按钮给了我这个错误:

错误:this.document.getWindow().$未定义源文件:includes/ckeditor/ckeditor.js行:82

jquery ckeditor jquery-dialog

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

覆盖基本jQuery-UI css的简单方法?

我觉得这是一个愚蠢的问题,但我总是发现在使用jQuery时修改某些CSS属性是一件麻烦事.假设我将一个元素定义为jQuery-UI对象(如自动完成或日期选择器),如何修改CSS而不必去UI网站并构建我自己的主题?

例如,我发现日历的默认字体大小非常大,所以我经常要找到由jQuery创建的包含div然后添加一个font-size: 14px !important;如果我想要应用样式,否则它会被jQuery打败定义(因为它更有选择性).

解决方案是否使我的规则更具选择性?或者我错过了一些非常明显的东西

css jquery jquery-ui

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

访问CKEditor对话框HTML元素

我有一个艰难的时间搞清楚什么我必须做访问在CKEditor的某些UI元素在一个插件,我修改.

从本质上讲,我加入到他们的链接对话框内部链接在那里我的链接部分和出版物之间的分裂.当用户拿起从选择下拉从部分在不同的墨滴被填充下来出版物的部分.

正在从插件文件夹中的link.js文件修改以下代码.我删掉了所有不必要的东西,遗漏了我认为相关的东西.正如您在下面的代码中所看到的,我定义了一个选择下拉列表,其ID为'section',后跟'item'下拉列表.如何在部分下拉列表的onChange函数中访问"项目"下拉列表,以填充它?

我有我的ajax代码都想通了并且工作如果我硬编码最终在运行时在ID标签中填充的ID但是这从编辑器变为编辑器所以我不能依赖于硬编码的值.

{
 type :  'vbox',
 id : 'internalOptions',
 children :
 [
  {
   id : 'section',
   type : 'select',
   items :
   [
   ],
   setup : function( data )
   {
    //populate sections here
   },
   onChange : function (data)
   {
    //populate items here
   },
  },
  {
   id : 'item',
   type : 'select',
   items :
   [
   ],
   setup : function( data )
   {
   },
  }

 ]
}
Run Code Online (Sandbox Code Playgroud)

编辑:我遇到的问题是CKEditor将更改每个ID,因此它们是unqiue.虽然我将下拉列表命名为"section",但CKEditor将其称为176_section,但它并不总是相同的INT,因此我需要弄清楚如何在设置阶段抓住它.

javascript ckeditor

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

使用枚举('y','n')而不是MySQL表中的布尔字段是不是很糟糕?

所以几年前我看到了由第三方开发的系统的DB模式,并注意到他们使用枚举('y','n')而不是布尔(tinyint)字段.我不知道为什么,但我非常喜欢它,我发现它让事情变得更容易阅读(我知道这完全是主观的),但我采用它并从此开始使用它.我想我可以换成"真"和"假",但是,我能说什么,我只是喜欢它.

现在有人说,以这种方式做事是否有任何挫折 - 除了可能有点讨厌在游戏后期进入的程序员?

mysql

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

建立树视图

我对这个问题感到有点困惑,我已经考虑了一段时间了.我的数据库中有一个表可以执行任务.通过在parent_id字段中保存主键,每个任务都可以拥有父任务.我对这些任务的链接深度没有限制.

+-----------+-------+-----+
| Field     | Type  | Key |
+-----------+-------+-----+
| id        | int   | PRI |
| parent_id | int   | MUL |
+-------------------+-----+
Run Code Online (Sandbox Code Playgroud)

没有parent_id的任务是"项目",并且可以通过共享父任务将所有任务分组到任务组中.我现在想用一个HTML选择框填充项目的所有后代.

Task 1
  -Task 1.1
  -Task 1.2
    -Task 1.2.1
    -Task 1.2.2
  -Task 1.3
Task 2
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?我认为某种递归函数是有序的,但我似乎无法真正想出如何去做.

任何帮助都会有很大的帮助.:)

php mysql tree

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

有没有办法在拖动可排序项目时刷新可排序项?

我有部分,每个部分都有项目.这些项目是可排序的对象,我可以从一个部分拖放到另一个部分.我们的一些客户拥有TON部分,其中包含大量商品,这使得浏览器瘫痪了.当我最初设计它时,我很绿,所以效率并不是我的雷达,但现在我正在重新审视剧本,我遇到了一个问题.

为了解决这个问题,我在我的部分列表中使用ajax进行延迟加载,只有在单击"打开部分"按钮时才从服务器获取这些项目.我们在效率低下的系统中的一个功能是用户可以在一个封闭的部分上保持拖动的项目500ms,它将打开该部分.

这是生成的HTML:

<ul class="sections ui-sortable" style="display: block;">
    <li id="s_3" class="ui-droppable">
        <input type="hidden" value="3" name="section_id">
        <span class="sectionName">Section 1</span>      
        <ul class="items ui-sortable" style="">
            <!-- Items can go here -->
        </ul>
    </li>
    <li id="s_11" class="ui-droppable">
        <input type="hidden" value="11" name="section_id">
        <span class="sectionName">Section 2</span>
        <ul class="items ui-sortable" style="display: block;">
            <li id="i_32">
                <input type="hidden" value="32" name="item_id">
                <span class="itemName">Item 1</span>
            </li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,排序功能会使用新填充的项目列表进行全部操作.

我就是这样做的,所以可以通过将鼠标悬停在列表上来打开列表:

//sElement is the .sections ul
function initItemDroppable( sElement ) {
    sElement.find('> li').droppable({
        accept: '.items > li',
        over: function( event, ui …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui-sortable

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

如何使用javascript修改字符串中每个单词的第一个字母,同时保持内部HTML完好无损?

下面的代码查看带有"title-case"类的任何元素,并修改每个单词的第一个字母,如果它是一个大写字母则稍微大一些.这是代码:

$(document).ready(function(){
    $('.title-case').each(function(){
        $(this).html( capitalize_first_letter( $(this).html() ) );
    });
});

function capitalize_first_letter( str ) {
    var words = str.split(' ');
    var html = '';
    $.each(words, function() {
        var first_letter = this.substring(0,1);
        html += ( first_letter == first_letter.toUpperCase() ? '<span class="first-letter">'+first_letter+'</span>' : first_letter )+this.substring(1) + ' ';
    });
    return html;
}
Run Code Online (Sandbox Code Playgroud)

你可以看到它在这里运行:http://jsfiddle.net/82Ebt/

它在大多数情况下都有效,但正如您从示例中看到的那样,它将破坏内部HTML节点.我真的不知道如何解决这个问题并且可以使用一些想法.我想可能只是操纵.text()而不是.html()但是直接删除了HTML.

编辑:我想指出我使用javascript的原因是因为我希望字符串中的每个单词都有更大的第一个字母,如果它是大写的.:first-letter伪类只影响第一个单词.

谢谢 :)

javascript jquery

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

使用php simplexml的Atom命名空间

这是我加载到simplexml对象中的RSS模板.我想改变

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <atom:link href="link" rel="self" type="application/rss+xml" />
        <title></title>
        <link></link>
        <description></description>
        <lastBuildDate></lastBuildDate>
    </channel>
</rss>
Run Code Online (Sandbox Code Playgroud)

我想更改atom:link中的href属性,但我不知道如何访问它.我通过SO搜索并发现了一些关于如何访问不同命名空间的信息,但我无法弄清楚如何将它们应用于这个特定的例子(主要是因为我非常密集:)

我可以使用下面的代码行修改我的链接属性,但是如何修改上面提到的属性?

$rss->channel->link = $rssLink;
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

php rss namespaces simplexml atom-feed

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

如何将'dblclick'附加到元素而不是它的后代?

我有一个带有嵌入式列表的基本列表项,当我双击li中不是嵌入式ul的任何地方时,我想打开它.

<ul>
    <li class="first_level">
        <span class="name">List Name</span>
        <ul class="tools"></ul>
        <ul class="sublist">
            <li>Subitem 1</li>
            <li>Subitem 2</li>
            <li>Subitem 3</li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我希望将.first_level中的任何内容附加到dblclick以将.sublist切换为可见且不可见但我不希望这发生,如果我dblclick on .tools,.sublist或.名称.

基本代码:

$('.first_level, .first_level :not(*)').dblclick(function(e){
    $(this).find('.sublist').toggle();
});
Run Code Online (Sandbox Code Playgroud)

我想我的:不是(*)会告诉它不要把它附在孩子身上但它没有用.我的.first_level有一个最小高度所以我最初的想法也让我检查元素中click事件的坐标,以及它是否在切换的最小高度内.这解决了它在子列表中抓取的问题,但我的工具和名称仍然是一个问题(不是最好的解决方案,但它是succint).那么我忘了在这里使用什么选择器呢?

http://jsfiddle.net/8PNEn/1/

jquery

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

为什么我不能解雇自定义事件?

我正在尝试使用jquery触发自定义事件但由于某种原因我似乎无法触发和/或捕获它们.

我正在使用jstree插件来创建包含文件夹的文件系统:

$('.filetree.global, .filetree.workspace').bind('select_node.jstree', function (event, data) {
    alert('test ');
    $(document).trigger( 'filePick').trigger( 'folderPick' );
}).jstree({
    /*stuff*/
});
Run Code Online (Sandbox Code Playgroud)

在代码的下面,我将filePick和folderPick事件绑定到具有特定类的元素,并告诉他们在捕获事件时提醒测试消息:

$('.folder-action').bind( 'folderPick', function(e, data) {
    alert('test 2');
} );
Run Code Online (Sandbox Code Playgroud)

不幸的是,警报永远不会被触发,我不知道为什么.jquery文档对我来说似乎很清楚,我遵循了一个不同的教程,似乎也表明我的代码应该可以工作,但事实并非如此!哎呀!

"测试1"会收到警报但不会"测试2".此外,我安装了Eventbug(Firebug扩展),我可以看到我对filePick的绑定已经注册,这使我相信filePick和folderPick从未被解雇.

jquery

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