2 回答
TA贡献1845条经验 获得超8个赞
<script>仅当您将标签放入 DOM 元素的 HTML 中时,这些标签才会被执行。这不会自动发生,您需要在您的success函数中执行此操作。
function createFolder(folder){
$.ajax({
url: "index.php",
type: "POST",
data: {'folder':folder},
success: function(data) {
console.log("successful post");
$("#somediv").html(data);
}
});
}
TA贡献1790条经验 获得超9个赞
好吧,您正在尝试使用 Ajax 和 JavaScript 从 php 服务器获取值,那么我猜您想在收到页面时发出警报
问题是
if(isset($_POST["folder"]))
only 在实际的 Ajax 请求本身中为 true,它仅从服务器获取字符串形式的数据,但并不实际执行它
如果您希望代码在页面上执行,则必须在客户端的 Ajax on success 调用上执行此操作,因此
<script>
function createFolder(folder){
$.ajax({
url: "index.php",
type: "POST",
data: {'folder':folder},
success: function(data) {
document.body.innerHTML+=data
// Or maybe data.responseTezt or something idk
// Look up in the API how to get the text content
console.log("successful post");
}
});
}
</script>
然后,如果未设置“文件夹”,则在服务器端仅回显 JavaScript,
同样在客户端,为了实际执行 JavaScript,您可能必须创建一个新的 Dom 解析器
所以整个php文件基本上是
<?php
if(isset($_POST["folder"])) {
//All of your other code
} else {
?>
<!--all of your HTML code-->
<script>
function createFolder(folder){
$.ajax({
url: "index.php",
type: "POST",
data: {'folder':folder},
success: function(data) {
// Or maybe data.responseTezt or something idk
// Look up in the API how to get the text content
var dp= new DOMParser()
var doc=dp.parseFromString(data,"text/html")
Array.from(doc.children).forEach(t=>
document.body.appendChild(t)
)
console.log("successful post");
}
});
}
</script>
<?php } ?>
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报