我不确定出了什么问题,但由于某种原因,Ajax中的成功函数没有调用该函数。我要求它在PHP完成后调用。
对于我有$test = 'Hi'; echo json_encode($test);
这是我的主页代码:
<?php
session_start();
if(!isset($_SESSION["b2_in"])){
header("Location: b2.php");
}
?>
<script>
$(document).ready(function(){
$("form input:submit").click(function() {
$.ajax({
type: "POST",
url: 'b2_send.php',
data: $('form').serialize(),
dataType: 'json',
//beforeSend: function(){ $("#send").val('Sending...');},
success: function(data) {
TestFunction();
},
statusCode: {
403: function(e) {
$("say").highlight();
$("#message").html(e.responseText);
}
}
});
return false;
});
});
function TestFunction(){
$("#message").val("");
}
</script>
<say>
<form>
<input type="text" name="message" class="Message" id="message"/>
<input type="submit" name="send" value='Say' id="send"/>
<span id="message" style="font-weight:bold;color:red;"></span>
</form>
</say>
答案 0 :(得分:0)
试试这个
span是DOM的块元素,因此要为其设置数据,您需要使用$(id).html(data);
而不是val()
你也应该为dom中的每个元素设置不同的id,它总是选择它在dom中获得的第一个id,在你的情况下它是
<input type="text" name="message" class="Message" id="message"/>
所以它会改变这个元素的值
<script>
$(document).ready(function(){
$("form input:submit").click(function() {
$.ajax({
type: "POST",
url: 'b2_send.php',
data: $('form').serialize(),
dataType: 'json',
//beforeSend: function(){ $("#send").val('Sending...');},
success: function(data) {
TestFunction();
},
statusCode: {
403: function(e) {
$("say").highlight();
$("#message").html(e.responseText);
}
}
});
return false;
});
});
function TestFunction(){
$("#message").html("");
}
</script>