Форма Aweber не отправляется, когда данные передаются через функцию ajax post - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь отправить форму Aweber, для которой я использовал функцию отправки формы jquery. это работает вот так. 1) Индекс содержит обычную форму, в которой пользователь вводит имя, фамилию и адрес электронной почты, затем эти значения передаются через ajax запрос в aweber. php, я не вызывал никаких функций обратного вызова, поскольку они мне не нужны. Я просто хочу, чтобы значения были успешно переданы в aweber. php и все должно работать в фоновом режиме.

вот мой ajax код.

<script type="text/javascript">
$(document).ready(function() {
    $('#loginform').submit(function(e) {
        e.preventDefault();
        $.ajax({
            
			url: 'aweber.php',
			headers: {
						'Content-Type': 'application/x-www-form-urlencoded'
			},
            data: $(this).serialize(),
			type: "POST",
       });
     });
});
</script>

и вот мой awebercode

<?php
header('Access-Control-Allow-Origin: *');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
</head>
<body>




<!-- AWeber Web Form Generator 3.0.1 -->

<form method="post" id="aweberForm" class="af-form-wrapper" accept-charset="UTF-8" action="https://www.aweber.com/scripts/addlead.pl"  >
<div style="display: none;">
<input type="hidden" name="meta_web_form_id" value="1725312779" />
<input type="hidden" name="meta_split_id" value="" />
<input type="hidden" name="listname" value="awlist5582443" />
<input type="hidden" name="redirect" value="" id="redirect_3384aafcdbf63332e0bba3f51f6c7fde" />
<input type="hidden" name="meta_redirect_onlist" value="https://gettingshredded.com" />
<input type="hidden" name="meta_adtracking" value="My_Web_Form" />
<input type="hidden" name="meta_message" value="1" />
<input type="hidden" name="meta_required" value="name (awf_first),name (awf_last),email" />

<input type="hidden" name="meta_tooltip" value="" />
</div>



<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
  $mysqli = new mysqli("localhost", "root", "", "mydb");
  $mysqli->set_charset("utf8mb4");
} catch(Exception $e) {
  error_log($e->getMessage());
  exit('Error connecting to database'); //Should be a message a typical user could understand
}

try
{
	
	if(isset($_POST['email']))
	{
	
	
	$first_name = $_POST['first_name'];
	$last_name = $_POST['last_name'];
	$email = $_POST['email'];
  
/*    echo json_encode(array('success' => 1));
} else {
    echo json_encode(array('success' => 0));
	*/
$stmt = $mysqli->prepare("INSERT INTO list (first_name,last_name,email) VALUES (?, ?,?)");
$stmt->bind_param("sss",$first_name,$last_name,$email);
$stmt->execute();
$stmt->close();
	
	
?>



<div id="af-form-1725312779" class="af-form"><div id="af-header-1725312779" class="af-header"><div class="bodyText"><p>&nbsp;</p></div></div>
<div id="af-body-1725312779" class="af-body af-standards">
<div class="af-element">
<label class="previewLabel" for="awf_field-106626599-first">First Name:</label>
<div class="af-textWrap">
<input id="awf_field-106626599-first" type="text" class="text" name="name (awf_first)" value="<?=$first_name;?>"  onfocus=" if (this.value == '') { this.value = ''; }" onblur="if (this.value == '') { this.value='';} " tabindex="500" />
</div>
<div class="af-clear"></div>
</div>
<div class="af-element">
<label class="previewLabel" for="awf_field-106626599-last">Last Name:</label>
<div class="af-textWrap">
<input id="awf_field-106626599-last" class="text" type="text" name="name (awf_last)" value="<?=$last_name;?>"  onfocus=" if (this.value == '') { this.value = ''; }" onblur="if (this.value == '') { this.value='';} " tabindex="501" />
</div>
<div class="af-clear"></div></div>
<div class="af-element">
<label class="previewLabel" for="awf_field-106626600">Email: </label>
<div class="af-textWrap"><input class="text" id="awf_field-106626600" type="text" name="email" value="<?=$email;?>" tabindex="502" onfocus=" if (this.value == '') { this.value = ''; }" onblur="if (this.value == '') { this.value='';} " />
</div><div class="af-clear"></div>
</div>
<div class="af-element buttonContainer">
</div>
<div class="af-element privacyPolicy" style="text-align: center"><p>We respect your <a title="Privacy Policy" href="https://www.aweber.com/permission.htm" target="_blank" rel="nofollow">email privacy</a></p>
<div class="af-clear"></div>
</div>
<div class="af-element poweredBy" style="text-align: center; font-size: 9px;"><p><a href="https://www.aweber.com" title="AWeber Email Marketing" target="_blank" rel="nofollow">Powered by AWeber Email Marketing</a></p>
<div class="af-clear"></div>
</div>
</div>
<div id="af-footer-1725312779" class="af-footer"><div class="bodyText"><p>&nbsp;</p></div></div>
</div>
<div style="display: none;"><img src="https://forms.aweber.com/form/displays.htm?id=jOxMrMyMTOzsnA==" alt="" /></div>
</form>
<script type="text/javascript">
    <!--
    (function() {
        var IE = /*@cc_on!@*/false;
        if (!IE) { return; }
        if (document.compatMode && document.compatMode == 'BackCompat') {
            if (document.getElementById("af-form-1725312779")) {
                document.getElementById("af-form-1725312779").className = 'af-form af-quirksMode';
            }
            if (document.getElementById("af-body-1725312779")) {
                document.getElementById("af-body-1725312779").className = "af-body inline af-quirksMode";
            }
            if (document.getElementById("af-header-1725312779")) {
                document.getElementById("af-header-1725312779").className = "af-header af-quirksMode";
            }
            if (document.getElementById("af-footer-1725312779")) {
                document.getElementById("af-footer-1725312779").className = "af-footer af-quirksMode";
            }
        }
    })();
    -->
</script>
<script type="text/javascript">document.getElementById('redirect_3384aafcdbf63332e0bba3f51f6c7fde').value = document.location;</script>

<!-- /AWeber Web Form Generator 3.0.1 -->



<?php 

echo "
<script type='text/javascript'>
$(document).ready(function(){
    $('#aweberForm').submit(); 
});
</script> ";

}
}

catch(Exception $e) {
  error_log($e->getMessage());
}
?>


</body>
</html>

проблема в том, что sql операции выполняются успешно, но форма не отправляется. может ли кто-нибудь помочь мне с решением.

то, что я сделал, правильно или есть какая-то ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...