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 關注
- 153 瀏覽
添加回答
舉報