【问题标题】:How do I insert NULL values for blank fields when using JQuery Serialize?使用 JQuery 序列化时如何为空白字段插入 NULL 值?
【发布时间】:2015-12-26 15:49:22
【问题描述】:

我有许多要序列化的表单。数据发布到 insert.php 页面或 update.php。

如果表单输入留空,我想在我的数据库中插入一个 NULL 值。我正在使用 mySQL。

似乎当一个表单被序列化时,任何留空的字段都作为 '' 的值发送,它不会作为 NULL 插入到我的数据库中。

我可以在序列化之前过滤掉空输入,但是当需要更新记录时这并不好。

这是一个表单,您至少可以看到空输入被记录为“”。

关于如何将这些值设置为 NULL 的任何建议?

jsfiddle.net/gabrieleromanato/bynaK/

【问题讨论】:

  • 这与 javascript 无关——这就是 html 表单的工作方式。如果您想用 null 替换空字符串,请执行该服务器端

标签: php jquery mysql ajax serialization


【解决方案1】:

您可以简单地在php 旁边检查值是否为空,使用strlen(...) == 0 condition 代替null (正如@PaulSpiegel 在此答案的评论中提到的empty 将认为0 也是空的,并将null 写入您的数据库) - http://php.net/manual/en/function.strlen.php

// Example
$value = !strlen($_POST['value']) ? null:$_POST['value'];
// .. save in MySQL 

【讨论】:

  • empty('0') 将返回 true。请改用strlen()
  • @PaulSpiegel 但 OP 只需要保存 null 以防“”输入值,所以我的意思是 empty() 是他需要的
  • 但是你也会把'0'转换成null
  • 啊好的同意更新答案
  • 感谢您抽出宝贵时间帮助我。我按照你的建议做了,它正在工作。我真的很感激。
猜你喜欢
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 2011-09-08
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多