我想查看我的PHP $ _POST变量,并将"undefined"
(由于jQuery如何发送它)的任何内容更改为""
或至少" "
,以便电子邮件表单已提交,但未填写任何值的"undefined"
(可选字段)。
谢谢!
答案 0 :(得分:3)
我建议你考虑更改你的javascript以更好地处理未定义,但是......
这是一种无循环方法:
$_POST = unserialize(str_replace('s:9:"undefined";', 's:0:"";', serialize($_POST)));
还有一种更典型的使用单循环的方法:
foreach($_POST as &$p) if($p=='undefined') $p = '';
注意:serialize
+ unserialize
方法很酷,因为它不使用循环,但循环方法可能稍快一些,尤其是当$_POST
很大时。
答案 1 :(得分:1)
在PHP中,如果你使用&在foreach循环中的符号,它将使用它作为参考而不是值。更改参考将设置原始值。
<?php
$_POST['text1'] = 'undefined';
$_POST['text2'] = 'undefined';
foreach($_POST as &$var)
{
if($var == 'undefined')
$var = '';
}
print_r($_POST);
?>
<!-- Will output -->
array(
text1=>
text2=>
)
答案 2 :(得分:1)
if (isset($_POST['var'])) {
// it is set
} else {
// it isnt set
}
答案 3 :(得分:0)
foreach ($_POST as &$var) {
if ($var === 'undefined') {
$var = '';
}
}