使用PHP中AJAX返回的变量



在我的addtodb.php文件的HTML标签中,我有一个按钮,仅在用户登录时显示:

<?php 
if (isset($_SESSION["userid"])){
echo "<button onclick='hiya()'> Add Image to User </button>";       
}
?>

在它的正下方,我有下面的脚本:

<script>
function itsucceeded(){
console.log("great");
document.body.insertAdjacentHTML("beforeend", "<?php echo 'a change hast occured';?>");
}
function hiya(){
$.ajax({
url: "wattapain.php",           //page containing php you want to run
type: "POST",               //request type
data : {clicked: "john"},   //data to be sent to the server
success: itsucceeded()      //function to be called if the request succeeds
})
}
</script>

wattapain.php只包含以下代码:

<?php
$clicked = $_POST['clicked'];
echo "HI".$clicked;
?>

console.log和insertAdjacentHTML调用工作,但无论我在PHP中放入什么,它都不会运行。起初,PHP的东西是在同一个文件(addtodb.php),但这不起作用,和所有的例子在线使用单独的PHP文件,所以我创建了wattapain.php,甚至停止检查,如果isset($_POST["clicked"]),但没有工作。我不知道出了什么问题,非常感谢您的帮助。

请、请、请不要结束这个问题,坚持说一个5年前的帖子回答了我的问题。相信我,它没有,我已经在这个上面花了两个小时了,其中一个半小时花在Stack Overflow上阅读类似的问题,却无法修复这个错误。

谢谢!

Javascript运行在web浏览器中,而PHP运行在后端服务器上。浏览器无法识别<?php echo 'a change hast occured';?>。您可以修改itsucceeded以获得wattapain.php的响应文本。

<script>
function itsucceeded(resp){
console.log("great");
document.body.insertAdjacentHTML("beforeend", resp.responseText);
}
function hiya(){
$.ajax({
url: "wattapain.php",           //page containing php you want to run
type: "POST",               //request type
data : {clicked: "john"},   //data to be sent to the server
success: itsucceeded      //function to be called if the request succeeds
})
}
</script>

最新更新