我有一个表单,我使用远程验证来检查数据库中是否已存在电子邮件地址.然而,问题在于,在这种形式上,用户可以在几个不同的"组"之间进行选择,并且每个组具有其自己的不同的电子邮件地址集(因此相同的电子邮件可以在每个组中存在一次).
组选择是表单上的下拉列表,电子邮件地址是具有远程验证的输入字段.我有几个问题.首先,我已经设置了这样的远程规则:
remote: {
url: 'remote_script.php',
data: { group_id: $('select.group_id').val() }
}
Run Code Online (Sandbox Code Playgroud)
但是,这似乎将group_id参数静态设置为select中的第一个值.意思是,如果我更改选择,然后再次触发远程验证,则group_id参数不会更改
首先,如何使此参数动态化,具体取决于表单中select的值?
其次,如何在电子邮件地址字段中手动触发远程验证?当group_id select更改时,我想在电子邮件地址字段上重新触发远程验证(不更改字段的值).我试过用
$(selector).validate().element('.email_addr')
Run Code Online (Sandbox Code Playgroud)
但这似乎只触发标准验证(必需,电子邮件),而不是远程调用.
我在使用MySQL的SELECT ... OUTFILE遇到一些困难,结果集包括空值和需要双引号转义的列(即包含'"'字符的列).这是我使用的outfile语法:
INTO OUTFILE '$csv_file'
FIELDS ESCAPED BY '""' TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
Run Code Online (Sandbox Code Playgroud)
我的问题是关于查询的FIELDS ESCAPED BY部分 - 如果省略此部分,则空值将正确导出(...,"\ N",...是csv中的样子).
但是,包含双引号的列将在excel中的多个行/列中拆分.这是因为excel要求列中的'\n''字符通过将它们写为'""来进行转义.
包括FIELDS ESCAPED BY子句修复了包含双引号字符的列的excel问题,但是,它会打破NULL列.NULL列导出为(..."N,...),缺少列上的反斜杠和尾部引号.在excel中,由于缺少关闭引号,这会导致多列相互折叠.
我的目标是能够导出包含双引号和换行符的列,以及将空列导出为\ N,但是我似乎无法弄清楚如何做到这一点.MySQL文档声明FIELDS ESCAPED BY会影响NULL列的输出方式,但我无法弄清楚转义序列'""会导致如何删除NULL列上的反斜杠和尾随引号
目前,我的解决方案是在每行输出一个字符串替换,因为我将它输出给用户,使用FIELDS ESCAPED BY并将'"N"替换为'"\ N",'.这似乎有效,但它没有感觉不错,我担心会引起某种问题
选择列上的IFNULL()可能是一个选项,但我们在代码中使用它的方式实际上很难实现.还需要对可能具有NULL值的每个列进行操作,因此如果可以的话,这是我想要避免的解决方案
谢谢!
有没有办法使用jquery.validate插件禁用"急切"验证?通过脚本中的选项或作为黑客?一旦表单验证一次,"急切"验证就会启动 - 之后,在聚焦输出上验证无效字段.我想禁用此行为,并将我的表单更改为仅在按下提交按钮时进行验证.
我也不介意通过验证脚本本身进行攻击,所以如果这是解决方案所要求的,那是可以接受的.
我为404,403等自定义错误文档设置了apache指令,以及500.但是,遇到致命错误时,PHP显示空白页而不是触发apache 500响应.
我不需要显示错误详细信息或类似的内容,因为它们当前在apache error_logs中正确记录,因此我认为它与error_reporting或display_errors没有任何关系,两者都设置正确.
这里有一些类似的问题,但没有找到满足我需要的答案.基本上,在类似语法错误的情况下,我想看到apache 500错误页面,而不是空白页面.这不是可以在PHP中捕获和处理的东西,因为语法错误是无法捕获的.
这似乎已在php 5.2.4中修补/修复,如下所示:http://www.mail-archive.com/internals@lists.php.net/msg28557.html
但是,我们使用的是PHP 5.2.17,目前升级是不可行的.有没有人有任何解决方案/解决方法可能会导致任何PHP语法/致命错误在apache中触发500错误?
这是我经常遇到的事情,我通常最终会尝试再试一次,直到数据有效.我想,为了保持数据而不是弄乱json,我们会知道最佳做法是什么.
假设我要发送的数据是最令人讨厌的排序的文本数据 - 特殊字符,&,<,",\n,\n\r \n,\ t,+,等等.
我们还假设我想保留utf8中的所有内容,并且我的mysql表配置为utf8.但是,由于缺乏PHP的utf8支持,因此应该考虑这一点.
我应该做什么编码/转义/ htmlentities:
1)通过AJAX POST将JSON数据从客户端JS发送到PHP(GET的任何不同之处?)
2)在PHP中解码数据并将文本字符串存储在mysql数据库中(或存储转义/编码数据?)
3)从PHP中的MySQL DB中检索数据,并作为JSON响应返回给JS AJAX请求
4)在我们的REST api的JSON响应中
php ×3
jquery ×2
mysql ×2
ajax ×1
apache ×1
encoding ×1
fatal-error ×1
forms ×1
into-outfile ×1
json ×1
sql ×1
validation ×1