循环 $_POST 变量并使用 PHP 修改 undefined

发布于 2024-12-12 01:16:52 字数 183 浏览 0 评论 0原文

我想查看我的 PHP $_POST 变量并将任何 "undefined" (因为 jQuery 发送它的方式)更改为 "" 或至少 " " 这样,当提交电子邮件表单时,只要未填写该值(可选字段),它就不会显示 “未定义”

谢谢!

I want to look through my PHP $_POST variables and change anything that is "undefined" (because of how jQuery is sending it) to "" or at least " " so that when the email form is submitted it doesn't say "undefined" wherever the value wasn't filled out (optional fields).

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

剩一世无双 2024-12-19 01:16:52

我建议您考虑更改您的 javascript 以更好地处理未定义,但是..

这是一种无循环方法来做到这一点:

$_POST = unserialize(str_replace('s:9:"undefined";', 's:0:"";', serialize($_POST)));

还有一种更典型的使用单个循环的方法,如下所示:

foreach($_POST as &$p) if($p=='undefined') $p = '';

注意:serialize + unserialize 方法很酷,因为它不使用循环,但循环方法可能稍微快一些,特别是当 $_POST 很大时。

I recommend you consider altering your javascript to handle the undefines better, BUT..

Here is a no loops approach to do it:

$_POST = unserialize(str_replace('s:9:"undefined";', 's:0:"";', serialize($_POST)));

There is also the more typical approach of using a single loop like so:

foreach($_POST as &$p) if($p=='undefined') $p = '';

Note: The serialize + unserialize approach is cool in that is does not use a loop, but the loop approach is probably slightly faster, especially when $_POST is large.

暖树树初阳… 2024-12-19 01:16:52

在 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=>
)

In PHP if you use an & symbol in an foreach loop it will use it as a reference instead of a value. Changing a reference will set the original value.

<?php
$_POST['text1'] = 'undefined';
$_POST['text2'] = 'undefined';
foreach($_POST as &$var)
{
    if($var == 'undefined') 
        $var = '';
}
print_r($_POST);
?>
<!-- Will output -->
array(
    text1=>
    text2=>
)
旧伤还要旧人安 2024-12-19 01:16:52
if (isset($_POST['var'])) {
    // it is set
} else {
    // it isnt set
}
if (isset($_POST['var'])) {
    // it is set
} else {
    // it isnt set
}
煮茶煮酒煮时光 2024-12-19 01:16:52
foreach ($_POST as &$var) {
    if ($var === 'undefined') {
        $var = '';
    }
}
foreach ($_POST as &$var) {
    if ($var === 'undefined') {
        $var = '';
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文