我只想知道如何为“成功”或“错误”发送“回调”消息。
我真的不太了解jquery / ajax,但是,我试图这样做:
我有一些带有一些信息的基本表单,我用POST方法发送了“test.php”的信息。
我的发送(不是输入)有这个ID:“#send”。这是我在index.html中的JS
$(document).ready(function() {
$("#send").click(function(e) {
e.preventDefault();
$(".message").load('teste.php');
});
});
而且,在我的PHP(test.php)中有这个:
<?php
$name = $_POST['name'];
if($name == "Test")
{
echo "Success!";
}
else{
echo "Error :(";
}
?>
当我点击按钮时,消息始终为:
注意:未定义的索引:第3行的/Applications/XAMPP/xamppfiles/htdocs/sites/port/public/test.php中的名称 错误:(
帮助:'(
答案 0 :(得分:0)
问题是您没有将名称数据传递给PHP使用我的Javascript代码。 理解中的问题请回复
$(document).ready(function() {
$(document).on('click','#send',function(e)
{
var params={};
params.name="Your Name ";
$.post('test.php',params,function(response)
{
e.preventDefault();
alert(response); //Alert Response
$(".message").html(response); //Load Response in message class div span or anywhere
});
});
});
答案 1 :(得分:0)
这是你的新JS:
$(document).ready(function()
{
$("#send").click(function(e) {
e.preventDefault();
var form_data = $("#my_form").serialize();
$.post('teste.php', form_data, function(data){
$(".message").empty().append(data);
});
});
});
这是您的新HTML:
<form id="my_form">
<input type="text" name="name" value="" />
<input type="button" id="send" value="Send" />
</form>
答案 2 :(得分:0)
您可以在项目中更普遍地使用它,这有点复杂。只需为要使用的每个表单添加一个新的回调函数。
<form method="POST" action="test.php" id="nameForm">
<input name="name">
<input type="submit">
</form>
<script>
// wrap everything in an anonymous function
// as not to pollute the global namespace
(function($){
// document ready
$(function(){
$('#nameForm').on('submit', {callback: nameFormCallback },submitForm);
});
// specific code to your form
var nameFormCallback = function(data) {
alert(data);
};
// general form submit function
var submitForm = function(event) {
event.preventDefault();
event.stopPropagation();
var data = $(event.target).serialize();
// you could validate your form here
// post the form data to your form action
$.ajax({
url : event.target.action,
type: 'POST',
data: data,
success: function(data){
event.data.callback(data);
}
});
};
}(jQuery));
</script>