PHP + AJAX表单提交不起作用
我完全不熟悉AJAX的概念,但发现它是完成我所要做的事情所需要的。基本上我只是需要它需要设置变量$提交等于true发生一个职位,然后运行查询到我的数据库。出于某种原因,虽然这段代码对我来说很有意义,但它似乎并没有将它传递给ajax文件,即使我得到了“成功”警报并且没有控制台错误。有什么明显的错误?PHP + AJAX表单提交不起作用
<form action="call.php" method="post">
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br>
<input class="oomButton submit" type="submit" name="submit" value="submit">
<script>
$(document).ready(function(){
$('.oomButton.submit').click(function(){
var clickBtnValue = $(this).val();
var ajaxurl = '/ajax.php',
data = {'action': clickBtnValue};
$.post(ajaxurl, data, function (response) {
alert("Account Created");
});
});
});
</script>
</form>
AJAX.PHP
<?php
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'submit':
submit();
break;
}
}
function submit() {
$submitted = true;
exit;
}
?>
当您设置一个PHP变量时,只要PHP脚本完成,它就会消失。但是,如果您使用PHP $_SESSION
变量,它将会持续。
要使用PHP $_SESSION
变量,只需在所有PHP脚本的顶部添加session_start()
。请注意,session_start()
必须是第一个指令 - 如果发送任何其他PHP头文件,session_start()
将不起作用。
因此,有你的其他PHP文件还测试$_SESSION['submitted']
变量(再次,需要高达session_start()
顶部),以确保它是好的,运行数据库插件。
HTML/JS:
<form action="call.php" method="post">
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br>
<input class="oomButton submit" type="submit" name="submit" value="submit">
</form>
<script>
$(document).ready(function(){
$('.oomButton.submit').click(function(){
var clickBtnValue = $(this).val();
var ajaxurl = 'http://clients.oomdo.com/provision/ajax.php',
data = {'action': clickBtnValue};
$.post(ajaxurl, data, function (response) {
alert(response);
});
});
});
</script>
AJAX.PHP
<?php
session_start();
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'submit':
submit();
echo 'Hurrah';
}
}
function submit() {
$_SESSION['submitted'] = true;
}
?>
下面是一些有用的AJAX初学者的信息后 - 它链接到含有另一篇文章一些简单的AJAX示例。试试看。
Prevent Page Load on Jquery Form Submit with None Display Button
那么...那么做了!我已经使用了大量的会话变量,并没有认为非会话变量会被重置。感谢一群人! – codnor
试着这样做:
赶上形式提交,并通过Ajax的POST,并删除形式的行动,你都指向调用.php,所以当你提交表单的时候,action会去call.php。
<form id="form" method="post">
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br>
<input class="oomButton submit" type="submit" name="submit" value="submit">
<script>
$(document).ready(function(){
$('#form').on('submit', function(e){
var clickBtnValue = $('.oomButton .submit').val();
var ajaxurl = 'http://clients.oomdo.com/provision/ajax.php',
data = {'action': clickBtnValue};
$.post(ajaxurl, data, function (response) {
alert("Account Created");
});
});
});
</script>
</form>
感谢您的回复!不幸的是,没有运气。仍然试图做尽可能多的错误检查 – codnor
尝试使用下面这段代码。
当您成功填写表单的所有字段并点击提交后,它会提示您使用js提醒。 PHP到js并不总是需要ajax。注意我是如何把我的js放在php文件中的。我只是从表单调用中运行整个事情。
mail($toaddress, $subject, $message, $headers);
$success=htmlspecialchars($_GET['to']);
$success=ucwords($success);
$valid= 'sent to' . ' ' . $success . ' ' . 'from a php server. Hit the back arrow' ;
echo "<script type='text/javascript'>alert('$valid');</script>";
你在哪里闭上你的''
糟糕,它在关闭脚本标记下关闭。 – codnor
你可以在你的php文件中回显一些东西,然后让你的脚本发出警报,而不是“创建帐户”。这将测试脚本是否正在触碰该文件。 –