Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用PHP+;JS?_Javascript_Php_Mailchimp - Fatal编程技术网

Javascript 如何使用PHP+;JS?

Javascript 如何使用PHP+;JS?,javascript,php,mailchimp,Javascript,Php,Mailchimp,即使我在表格上输入了我的名字,我也只收到了电子邮件地址。请原谅我,我不是编码专家。我只知道基本的html,我只是在网上找到一些代码 我的通讯表单如下所示: <form id="subscribe" class="form" action="<?=$_SERVER['PHP_SELF']; ?>" method="post"> <div class="form-group form-inline"> <input si

即使我在表格上输入了我的名字,我也只收到了电子邮件地址。请原谅我,我不是编码专家。我只知道基本的html,我只是在网上找到一些代码

我的通讯表单如下所示:

 <form id="subscribe" class="form" action="<?=$_SERVER['PHP_SELF']; ?>" method="post">
        <div class="form-group form-inline">
          <input size="15" type="text" class="form-control required" id="NewsletterName" 
  name="NewsletterName" placeholder="Your name" /> 
          <input size="25" type="email" class="form-control required" id="NewsletterEmail" 
 name="NewsletterEmail" placeholder="your@email.com" /> 
          <input type="submit" class="btn btn-default" value="SUBSCRIBE" />
          <span id="response">
            <? require_once('assets/mailchimp/inc/store-address.php'); if($_GET['submit']){ echo 
 storeAddress(); } ?>
          </span>
        </div>
      </form>
jQuery(document).ready(function() {
jQuery('#subscribe').submit(function() {
    // update user interface
    jQuery('#response').html('<span class="notice_message">Adding email address...</span>');


    var name = jQuery('#NewsletterName').val().split(' ');

    var fname = name[0];
    var lname = name[1];

    if ( fname == '' ) { fname=""; }
    if ( lname == '' || lname === undefined) { lname=""; }
    // Prepare query string and send AJAX request
    jQuery.ajax({
        url: 'assets/mailchimp/inc/store-address.php',
        data: 'ajax=true&email=' + escape(jQuery('#NewsletterEmail').val()),
        success: function(msg) {

            if (msg.indexOf("Success") !=-1) {
                jQuery('#response').html('<span class="success_message">Success! You are now 
subscribed to our newsletter!</span>');
            } else {
                jQuery('#response').html('<span class="error_message">' + msg + '</span>');
            }
        }
    });

    return false;
});
});
<?php

function storeAddress(){

require_once('MCAPI.class.php');  // same directory as store-address.php

// grab an API Key from http://admin.mailchimp.com/account/api/
$api = new MCAPI('mymailchimpapi');

$merge_vars = Array( 
    'EMAIL' => $_GET['email'],
    'FNAME' => $_GET['fname'], 
    'LNAME' => $_GET['lname']
);

// grab your List's Unique Id by going to http://admin.mailchimp.com/lists/
// Click the "settings" link for the list - the Unique Id is at the bottom of that page. 
$list_id = "myuniqueid";

if($api->listSubscribe($list_id, $_GET['email'], $merge_vars , $_GET['emailtype']) === true) {
    // It worked!   
    return 'Success!&nbsp; Check your inbox or spam folder for a message containing a 
confirmation link.';
}else{
    // An error ocurred, return error message   
    return '<b>Error:</b>&nbsp; ' . $api->errorMessage;
}

}

// If being called via ajax, autorun the function
if($_GET['ajax']){ echo storeAddress(); }
?>

在php文件上。有人知道问题出在哪里吗?或者JS文件中有错误吗?

您的ajax查询字符串只包含
ajax=true&email=
,因此
$\u GET['fname']
将是未定义的。为了安全起见,若您在服务器上对用户输入进行一些验证,那个么这会有所帮助

从表单编译数据的一种更简单的方法是使用
serialize()


参考资料:

已修复!!!!感谢Charlietfl指出问题所在。我在谷歌上搜索了那个部分,找到了解决办法。我尝试添加serialize()代码,但单击submit按钮时出现页面错误

我在我的JS文件中添加了以下内容:

data: 'ajax=true&email=' + escape(jQuery('#NewsletterEmail').val()) + '&fname=' + escape(jQuery('#NewsletterName').val()),
因此,整个代码是:

jQuery(document).ready(function() {
jQuery('#subscribe').submit(function() {
    // update user interface
    jQuery('#response').html('<span class="notice_message">Adding email address...</span>');


    var name = jQuery('#NewsletterName').val().split(' ');

    var fname = name[0];
    var lname = name[1];

    if ( fname == '' ) { fname=""; }
    if ( lname == '' || lname === undefined) { lname=""; }
    // Prepare query string and send AJAX request
    jQuery.ajax({
        url: 'assets/mailchimp/inc/store-address.php',
        data: 'ajax=true&email=' + escape(jQuery('#NewsletterEmail').val()) + '&fname=' + 
escape(jQuery('#NewsletterName').val()),
        success: function(msg) {

            if (msg.indexOf("Success") !=-1) {
                jQuery('#response').html('<span class="success_message">Success! You are now 
subscribed to our newsletter!</span>');
            } else {
                jQuery('#response').html('<span class="error_message">' + msg + '</span>');
            }
        }
    });

    return false;
});
});
jQuery(文档).ready(函数(){
jQuery('#subscribe').submit(函数(){
//更新用户界面
jQuery('#response').html('添加电子邮件地址…');
var name=jQuery('#newsletteName').val().split('');
var fname=name[0];
var lname=名称[1];
如果(fname=''){fname=“”;}
如果(lname=''| | lname===未定义){lname=“”;}
//准备查询字符串并发送AJAX请求
jQuery.ajax({
url:'assets/mailchimp/inc/store address.php',
数据:“ajax=true&email=”+escape(jQuery(“#newslettemail”).val())+”&fname=”+
escape(jQuery('#newsletteName').val()),
成功:功能(msg){
如果(msg.indexOf(“Success”)!=-1){
jQuery('#response').html('成功!您现在
订阅我们的通讯!);
}否则{
jQuery('#response').html(''+msg+'');
}
}
});
返回false;
});
});
data: 'ajax=true&email=' + escape(jQuery('#NewsletterEmail').val()) + '&fname=' + escape(jQuery('#NewsletterName').val()),
jQuery(document).ready(function() {
jQuery('#subscribe').submit(function() {
    // update user interface
    jQuery('#response').html('<span class="notice_message">Adding email address...</span>');


    var name = jQuery('#NewsletterName').val().split(' ');

    var fname = name[0];
    var lname = name[1];

    if ( fname == '' ) { fname=""; }
    if ( lname == '' || lname === undefined) { lname=""; }
    // Prepare query string and send AJAX request
    jQuery.ajax({
        url: 'assets/mailchimp/inc/store-address.php',
        data: 'ajax=true&email=' + escape(jQuery('#NewsletterEmail').val()) + '&fname=' + 
escape(jQuery('#NewsletterName').val()),
        success: function(msg) {

            if (msg.indexOf("Success") !=-1) {
                jQuery('#response').html('<span class="success_message">Success! You are now 
subscribed to our newsletter!</span>');
            } else {
                jQuery('#response').html('<span class="error_message">' + msg + '</span>');
            }
        }
    });

    return false;
});
});