jquery向newseltter表单添加一个参数

时间:2016-07-20 12:01:27

标签: 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>";
}

1 个答案:

答案 0 :(得分:1)

这是您在现有.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>";
}