小编Enr*_*que的帖子

来自jQuery Ajax的Bool参数在PHP中作为文字字符串"false"/"true"接收

这个问题与以下内容有关:

无法使用jQuery AJAX将null传递给服务器.在服务器上收到的值是字符串"null"

但是我再次问它,因为那个问题的解决方案非常难看,而且我认为必须是更好的解决方案.

问题
当您使用POST将带有jQuery Ajax的数据发送到PHP时,您将获得字符串"false"(字符串)而不是false(bool),"true"而不是true(bool)和"null"而不是NULL:

解决方案
(在上面的问题中提出):在使用jQuery发送之前将数据转换为JSON,然后在PHP中解码该数据.使用代码:

Javascript代码:

$.ajax
(
   {
      url     : <server_url>,
      dataType: 'json',
      type    : 'POST',
      success : receiveAjaxMessage,
      data    : JSON.stringify
      (
         {
            valueTrue : true,
            valueFalse: false,
            valueNull : null
         }
      )
   }
);
Run Code Online (Sandbox Code Playgroud)

PHP代码:

var_dump(json_decode(file_get_contents('php://input'), true));
Run Code Online (Sandbox Code Playgroud)

对我来说,这不是一个解决方案,只是一个丑陋的黑客.

在我的情况下的问题是我不能使用file_get_contents('php:// input')来访问$ _POST,甚至更多,我不能使用$ _POST因为我正在使用HMVC.

而且我知道我可以修复它在PHP中检查那些"false","true"和"null",或者在jQuery中发送1和0 instear true和false.
但我认为这一定是一个非常常见的问题,jQuery是一个非常常见的框架,因此我非常确定在jQuery中使用正确的类型发送数据是一种更好,更优雅的方法.

php ajax jquery post type-conversion

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

模拟列表中的边框折叠(无表)

我总是遇到同样的问题,当我有2个带边框的相邻元素时,边框会被合并.对于表格,我们有border-collapse属性来解决这个问题.

我已经尝试从其中一个边缘省略边框,但这仅适用于中间的元素,第一个和最后一个元素将错过边框.

例如,有人知道列表元素的解决方案吗?

css list border collapse

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

生成内容的z-index IE8错误:after

这是IE8中的已知错误,请查看此处的最后一个错误:http:
//nicolasgallagher.com/css-typography-experiment/demo/bugs.html

现在,玩一个简单的例子我发现了这个(用IE8测试它):http:
//jsfiddle.net/AjCPM/

<div id="target">
   <div>div</div>
</div>


#target {
    position: relative;
    width: 200px;
    height: 200px;
    z-index: 1;
}
#target>div{
    background: red; width: 200px; height: 200px;  
    position: relative;
    z-index: 0;
}
#target:before {
    top: 0; left: 10%; width: 100%; height: 100%; background: cyan;
    content: "after";
    position: absolute;
    z-index: 10;
}
Run Code Online (Sandbox Code Playgroud)

IE8渲染红色矩形下方的青色矩形(:after),即使它具有较低的z-index.
现在是棘手的部分:
将#target> div的z-index从0更改为-1并且voilá!它解决了!

所以我现在使用大量的z-index解决了我的问题:-1;
但我对此感到不安全.

你知道更好的解决方案吗?

我正在使用:在伪元素之后,因为我有一个产品列表,并且我想在项目具有"已售出"类时添加图像.
我可以在服务器或JS中创建一个新的html元素,但我认为使用:after是正确的语义解决方案.
问题是我有点偏执:现在伪元素之后,你认为最好避免它吗?

css z-index internet-explorer-8 pseudo-element

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

使用MySQL在不同字段上多个GROUP_CONCAT

我有这样的查询:

SELECT product.id,
       GROUP_CONCAT(image.id) AS images_id,
       GROUP_CONCAT(image.title) AS images_title,
       GROUP_CONCAT(facet.id) AS facets_id
...
GROUP BY product.id
Run Code Online (Sandbox Code Playgroud)

并且查询有效,但不是预期的,因为如果我有一个带有5个facet和1个图像的产品(假设id为7的图像),那么我在"images_id"中得到类似的东西:
"7,7,7, 7,7"
如果我有2张图像(7和3),那么我会得到类似的东西:
"7,7,7,7,7,3,3,3,3,3"
并且在方面我得到类似的东西:
" 8,7,6,5,4,8,7,6,5,4"

我认为MySQL正在对查询返回的不同行进行某种类型的并集,然后连接所有内容.

我的预期结果是(对于最后一个例子):

images_id ="7,3"
facets_id ="8,7,6,5,4"

我可以在GROUP_CONCAT中使用DISTINCT获得它,但后来我有另一个问题:如果我有两个具有相同标题的图像,其中一个是ommited,然后我得到类似的东西:
images_id ="7,3,5"
images_title ="Title7and3,Title5"

所以我想念images_id和images_title之间的关系.

有人知道是否有可能在MySQL中进行此查询?

也许我在没有任何实际好处的情况下使一切变得复杂.我试图只执行一个查询,因为性能,但现在我不太确定它是否更快执行两个查询(一个用于选择构面,另一个用于图像).

请解释一下您认为最佳解决方案是什么以及为什么.

谢谢 !

mysql group-concat

21
推荐指数
3
解决办法
2万
查看次数

如何避免PHP中的动态属性(在设置未声明的属性时引发错误)

例:

error_reporting(E_ALL | E_STRICT);
class Test {}
$obj = new Test();
$obj->undeclared = "oops";    // I want an error here !! :(
echo $obj->algo;              // oops 
Run Code Online (Sandbox Code Playgroud)

我在PHP 5.2.11和5.3.0上测试了它.

我不想在我的对象中使用动态属性.
在这种情况下可以强制PHP引发错误吗?

php properties dynamic

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

使用.html()删除元素时,是否会自动删除jQuery中的事件侦听器?

在jQuery中,如果我们使用.remove()删除一些元素,则删除与元素关联的所有绑定事件和jQuery数据.

但是如果我们用"删除"元素会发生什么.html()

在更改任何html以避免内存泄漏之前,我们是否需要取消绑定所有元素?

jquery events memory-leaks unbind

16
推荐指数
2
解决办法
3860
查看次数

Flash Builder中的TODO任务列表

Flash Builder是否支持任务列表?
我正在测试Flash Builder for PHP,我可以在PHP代码中看到我的// TODO,但在AS或MXML中却看不到.

我找到了这个插件:
http ://www.richinternet.de/blog/index.cfm? entry = 911D4B57-0F0D5A73- AF6F4D4D04099757,
但它已经很老了.

您知道如何使用Flash Builder 4.5在AS3和MXML代码中查看我的TODO列表吗?

[更新]: 我已经从richinternet.de安装了该插件,它适用于Flash Builder 4.5 for PHP.
但它非常差,它只检测TODO和FIXME,如果你打开文件,它不会搜索你的所有src的TODO和FIXME.
并且不区分大小写,这对我来说是一个问题,因为西班牙语"todo"意味着"一切",所以我现在不能在我的评论中使用todo这个词.

经过这么多年开发Flash Builder之后,我无法理解Adobe如何不包含这个插件!当你生成一个处理程序,方法等时,他们正在添加TODO注释!如果你没有在任务中显示它,我不知道如何有用!

task flash-builder todo

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

如何调用祖父素方法而不会出现E_STRICT错误?

有时我需要执行grandparent方法(也就是绕过父方法),我知道这是代码味道,但有时候我不能改变其他类(框架,库等).

在PHP中,我们可以通过以下方式实现:

call_user_func(array(get_parent_class(get_parent_class($childObject)), 'grandParentMethod'));
Run Code Online (Sandbox Code Playgroud)

问题是,如果您启用了E_STRICT错误,您将收到如下错误:

严格的标准:非静态方法GrandParent :: grandParentMethod()不应该在...中静态调用

我发现只有一个解决方案(没有删除E_STRICT),它只是添加@以抑制错误.

但这真的很难看,有人知道更好的解决方案吗?

谢谢 !PS:我无法实例化一个新对象,如:

$grandparent = get_parent_class(get_parent_class($son));
$gp= new $grandparent;
$gp->grandParentMethod
Run Code Online (Sandbox Code Playgroud)

因为我需要在$ son的上下文中调用我的祖父母方法.

php inheritance

12
推荐指数
2
解决办法
8592
查看次数

使用PHP中的MVC进行重定向后获取(PRG)的最佳实践

MVC的PRG模式有哪些最佳实践?
在本教程:
http://www.theserverside.com/news/1365146/Redirect-After-Post
所提出的解决方案要求4个动作:
Create_Item(POST)=> "复位"的形式,并且重定向到Display_Item
Display_Item(GET)= >显示表单(具有临时数据和错误,如果存在)
Store_Item(POST)=>尝试将数据保存到DB,如果错误,保存错误并重定向到Display_Item,如果成功重定向到Display_Stored
Display_Stored(GET)=>显示项目创建或成功的消息,tec.

现在,我认为使用POST进行第一个操作是一个问题,因为我们无法使用链接启动表单.在Create_Item中使用GET 似乎是一个更好的选择.
此外,我们可以对3个操作执行相同的操作(对Create_Item和Display_Item使用相同的操作,但使用额外的标志重置表单,例如:
http ://www.example.com/controller/Create_Item/? reset = 1

而且我们也可以只用2个动作做同样的事情,因为我们可以在Create_Item里面使用if 来检查请求是GET还是POST(所以我们将Display_Item与Store_Item结合起来).

而且我们也可以做同样的事情1个操作,因为我们可以有一个额外的标记(在URL查询或会话中)来显示结果而不是表单:
GET http://www.example.com/controller/Create_Item/?reset=1 =>显示一个新表单并重定向到下一个URL
GET http://www.example.com/controller/Create_Item/ =>显示一个包含临时数据和错误的表单(如果存在)
POST http://www.example.com/controller/ Create_Item / =>保存temp中的错误或DB中的数据(并设置成功的会话标志)并重定向到上面的URL或下一个URL
GET http://www.example.com/controller/Create_Item/ => if $ _SESSION ['success']显示结果

我个人喜欢有4个动作的想法,但我没有任何其他选项的真正优势.但是如果没有真正的标准,我选择我的设计并不安全.
有人知道每个设计的PROSCONS(如果有的话)吗?

例如,我看到4个动作更清晰,但如果我们想要更改临时数据的保存方式,我们需要在4个位置更改它.

谢谢!

php model-view-controller post-redirect-get

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

是否有任何IDE能够在PHP中重命名重构命名空间?

你知道任何PHP IDE能够重命名类和命名空间,并正确地重构代码(所有文件)吗?

php ide refactoring namespaces rename

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