javascript - jquery 添加一个参数到新闻通讯表单

标签 javascript php jquery

我想向表单添加一个参数并检查它是否有效,但我无法正确执行...

原文:

newsletterForm: {
        selector: '#newsletter-form',
        init: function() {
            var base = this,
                    container = $(base.selector),
                    url = container.data('target');

            container.submit(function() {
                container.find('.result').load(url, {email: $('#email').val()},
                function() {
                    $(this).fadeIn(200).delay(3000).fadeOut(200);
                });
                return false;
            });

        }
    }

我能够在 html 中添加字段,但我无法在此处添加它,这是我尝试过的:

newsletterForm: {
        selector: '#newsletter-form',
        init: function() {
            var base = this,
                    container = $(base.selector),
                    url = container.data('target');

            container.submit(function() {
                container.find('.result').load(url, {email: $('#email').val()}, {name: $('#name').val()},
                function() {
                    $(this).fadeIn(200).delay(3000).fadeOut(200);
                });
                return false;
            });

        }
    },

不知道如何继续,但我在 php 文件中有以下内容:

if (is_email($email){ // do something}
else{
  echo '<div class="notification-box error">';
  echo "Please enter a valid email address";
  echo "</div>";
}

如果电子邮件无效,则会在页面上显示,但当我将其添加为名称时,例如

if (is_string($name){ // do something}
else{
  echo '<div class="notification-box error">';
  echo "Please enter a name";
  echo "</div>";
}

如果我在填写表单时不输入姓名,页面上不会显示此消息。

有人可以帮助我吗?

谢谢。

编辑:

$name = strtolower($_POST['name']);
$email = strtolower($_POST['email']);


if(!is_string($name) || empty($name)){
    echo '<div class="notification-box error">';
    echo "Please enter name";
    echo "</div>";
}

最佳答案

这是您向现有的 .load() 调用添加另一个参数的方法

container.find('.result').load(url, {
                                     email: $('#email').val(), 
                                     name: $('#name').val()
                                    },

您需要添加更多的 PHP 代码,以便我也能够进行检查,但是 .load() 在传递像您这样的对象时将使用 POST 所以你应该看看

$_POST['name'] 

您在该参数中传递的数据的值

编辑:

在做任何其他事情之前,你应该真正测试 EMPTY。此外,无需将数据从 $_POST 移动到标量变量。一旦 PHP 为您创建了 $POST ,它就完全属于您了

if (!empty($_POST['email']) && is_email($_POST['email']){ 
  // do something}
else{
  echo '<div class="notification-box error">';
  echo "Please enter a valid email address";
  echo "</div>";
}

if(empty($_POST['name']) || !is_string($_POST['name']) ){
    echo '<div class="notification-box error">';
    echo "Please enter name";
    echo "</div>";
}

关于javascript - jquery 添加一个参数到新闻通讯表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38480753/

相关文章:

php - 带有 JOIN 的 MySQL 查询未正确执行

javascript - 在复杂菜单中添加事件类

javascript - 当网站想要使用计算机上的额外存储空间时,如何显示警报消息

jquery - 处理由两个逻辑上独立的 HTML 标记部分组成的 AJAX 响应

jquery - 如何从 ajax 查询将数据绑定(bind)到 kendoui 网格?

javascript - 图片上传前的多个缩略图

php - Backbone.js:奇怪的 .save() 错误回调

javascript - 为什么这个 HTML 按钮不起作用?

javascript - 延迟 Javascript 解析给出错误

javascript - 如何打印已被 javascript 更改的页面?