gpt4 book ai didi

javascript - php ajax 表单提交..什么也没发生

转载 作者:行者123 更新时间:2023-12-02 16:23:09 25 4
gpt4 key购买 nike

我有一个 PHP Ajax 表单,我正在尝试提交 Zendesk API 调用。每当我使用ajax部分时,为了使用户保持在同一页面上,它都不起作用。当我删除<script>时部分,它工作正常,但显然重定向到 contact.php来自contact.html所以我认为问题出在 Ajax 部分,而不是 PHP 部分。

这是我的 HTML 表单:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<div class="box_form">

<form id="zFormer" method="POST" action="contact.php" name="former">
<p>
Your Name:<input type="text" value="James Duh" name="z_name">
</p>
<p>
Your Email Address: <input type="text" value="duh@domain.com" name="z_requester">
</p>
<p>
Subject: <input type="text" value="My Subject Here" name="z_subject">
</p>
<p>
Description: <textarea name="z_description">My Description Here</textarea>
</p>
<p>
<input type="submit" value="submit" id="submitter" name="submit">
</p>
</form>
</div>

<div class="success-message-subscribe"></div>
<div class="error-message-subscribe"></div>


<script>
jQuery(document).ready(function() {

$('.success-message-subscribe').hide();
$('.error-message-subscribe').hide();

$('.box_form form').submit(function() {
var postdata = $('.box_form form').serialize();
$.ajax({
type: 'POST',
url: 'contact.php',
data: postdata,
dataType: 'json',
success: function(json) {
if(json.valid == 1) {
$('.box_form').hide();

$('.error-message-subscribe').hide();
$('.success-message-subscribe').hide();
$('.subscribe form').hide();
$('.success-message-subscribe').html(json.message);
$('.success-message-subscribe').fadeIn();
}
}
});
return false;
});

});
</script>

</body>
</html>

以及 PHP 部分:

您可能可以忽略其中的大部分内容,因为它在我不使用 Ajax 时起作用。仅最后几行给出响应 $array['valid'] = 1;然后应该被 if(json.valid == 1) 捕获如上所述。

<?php
( REMOVED API CALL CODE FROM ABOVE HERE )

if (isset($_POST['submit'])) {

foreach($_POST as $key => $value){
if(preg_match('/^z_/i',$key)){
$arr[strip_tags($key)] = strip_tags($value);
}
}
$create = json_encode(array('ticket' => array(

'subject' => $arr['z_subject'],
'comment' => array( "body"=> $arr['z_description']),
'requester' => array('name' => $arr['z_name'],
'email' => $arr['z_requester'])

)));

$return = curlWrap("/tickets.json", $create, "POST");


$array = array();
$array['valid'] = 1;
$array['message'] = 'Thank you!';
echo json_encode($array);


?>

有什么想法为什么这不起作用吗?

最佳答案

我预计您使用 contact.php 作为相对 URL 无法正确解析。检查您的 JavaScript 控制台,您应该会看到一条错误,显示帖子失败。将 contact.php 更改为 www.your_domain.com/contact.php 它应该可以正常工作

关于javascript - php ajax 表单提交..什么也没发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28930624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com