jquery向newseltter表单添加了一个参数

jquery adding one parameter to newseltter form

本文关键字:一个 参数 newseltter 表单 添加 jquery      更新时间:2023-09-26

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

原件:

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>";
}