嗨,大家好,我的代码,我尝试了一切来解决它,但没有:
<?php
if(isset($_POST['sInput'])){
$sInput=($_POST['sInput']);
echo "$sInput";
}else{
echo '1';
}
?>
<input type="button" class="button" onclick="Data(<?=$i?>)"/>
<script type="text/javascript">
function Data(sInput){
$.ajax({
type:"POST",
data:{sInput:sInput},
cache:"false",
success: function() {
alert('Done');
}
});
}
</script>
我写的代码是按照这个顺序编写的,有可能它不起作用,因为PHP可能应该在js之后?
请注意,Post请求位于同一页面中,因此我没有指定URL,我必须说,当我单击按钮时,我会看到说出完成的JS alert
答案 0 :(得分:3)
Ajax不是时间旅行。
这就是:
$_POST['sInput']
未定义,因此您可以从else
$_POST['sInput']
已定义,JavaScript收到if
发出第二个请求不会更改历史记录。您正在查看的页面仍然是第一次请求的页面。
如果您想加载一个新页面,请不要使用Ajax。
如果你想根据你收到Ajax请求的响应修改用户已经在查看的页面,那么你必须编写JavaScript(在你的成功函数中)来操作页面的DOM。
success: function(response) {
alert(response);
$(document.body).append($("<div></div>").text(response));
}
答案 1 :(得分:0)
你应该为你的成功函数传递一个参数 这是来自php的数据 以及:
成功:功能(数据){ 警报(数据) }