2016-05-26 11 views
0

Versuchen, ein Mail Chimp Anmeldeformular mit Mail Chimp API 3.0 zu erstellen.AJAX Probleme, bekommen Antwort von PHP zurück

Bis jetzt habe ich ein Formular, das mit dem jQuery Validation Plugin validiert und mit einem jQuery Form Plugin in ein PHP Skript schreibt. Das PHP-Formular funktioniert basierend auf mehreren Tests. Ich bin mir auch sicher, dass die Daten vom Formular zum PHP-Skript übertragen werden. Wenn Daten vom PHP-Skript auf die Seite zurückgeleitet werden, kommt es dort zu Problemen.

Hier ist die JS-Seite der Dinge.

// jquery form for submitting —— this is where the part that is not working, I just want back an error code (e.g., 400, 404, 500) or status (e.g., pending, subscribed) and pass that to the var user_status. 
    submitHandler: function(form) { 
    jQuery(form).ajaxSubmit({ 
    url: '/mc_ajax/process_mc_getstatus.php', 
    success: function() { 


     // translate variables form php to js // 
     function reqListener() { 
     console.log(this.responseText); 
     } 
     var oReq = new XMLHttpRequest(); //New request object 
     oReq.onload = function() { 
     // var user_status = JSON.parse(this.responseText); 
     }; 
     oReq.open("get", "/mc_ajax/process_mc_getstatus.php", true); 
     oReq.send(); 

     alert(this.responseText); 

Momentan ist user_status die Variable, die ich aus dem PHP-Skript auffüllen möchte.

Ich verwendete var user_status = JSON.parse (this.responseText); Das verursachte jedoch einen Fehler, da die Daten bereits analysiert wurden. Hier

ist, was ich in der PHP-Datei zum Senden von Daten zurück: „undefined“

// $json_data contains the output string 
    $json_data = curl_exec($ch); 

    // close cURL resource, and free up system resources 
    curl_close($ch); 

    // Get status from JSON // 
    $json_data = json_decode(utf8_encode($json_data)); 
    $user_status = $json_data->status; 

    echo json_encode($user_status); 

Die derzeit in einer Warnung führt, die sagt,

+0

Überprüfen Sie var_dump von jedem Schritt, $ user_status ist wahrscheinlich kein Objekt oder Array. – LordNeo

+0

$ user_status wird definitiv im PHP-Skript verwendet. Am Ende des PHP-Skripts gibt es eine mail(), um eine E-Mail zu senden, um zu beweisen, dass das PHP-Skript funktioniert. $ user_status wird verwendet, um einen Teil des – justsomeone

Antwort

0

Haben Sie woking. JS wie folgt geändert:

   // jquery form for submitting 
       submitHandler: function(form) { 
        jQuery('#mc-embedded-subscribe-form').hide(); 
        jQuery('#newsletter-form').append("<p class='inprogress'>Working on that for you.</p>"); 

        jQuery(form).ajaxSubmit({ 
         url: '/mc_ajax2/process_mc.php', 

         success: function(responseText, statusText, xhr, $user_status) { 
          jQuery('.inprogress').hide(); 
          // jQuery('#newsletter-form').append(responseText); 
          jQuery('#newsletter-form').append("<p class='thanks'>" + responseText + "</p>"); 
         } 
        });