我正在嘗試使用從 Ajax 呼叫的 javascript 檔案更改輸入的值,顯然,它不起作用:/
我有一個頁面:
<input type="text" id="hello">
$.ajax({
url : 'index.php',
type : 'GET',
data: "value=test",
success : function (result) {
},
error : function () {
}
});
在 index.php 中,我有:
echo "
<script>
parent.document.getElementById('hello').value = 'Please work';
</script>
";
我什至嘗試過“window.parent.docu ....”,仍然沒有運氣。有沒有辦法通過PHP檔案來做到這一點?非常感謝!
請注意,我不想在回呼中這樣做,因為我不希望用戶看到所有變數等的處理等我希望所有這些資訊都在 PHP 中完成,然后當它完成時填寫變數主頁。
uj5u.com熱心網友回復:
這類事情讓很多 PHP 編碼人員感到困惑。PHP 渲染發生在服務器上。當頁面交付給用戶時,它只是 HTML 和 javascript;進一步嘗試通過 PHP 修改頁面將不起作用;回顯新的 js 行不會將其附加到檔案并按照您期望的方式執行它。
相反,您需要讓您的 PHP 腳本回傳您想要插入的文本,并在呈現的頁面中使用 javascript 來插入它:
$.ajax({
url : 'index.php',
type : 'GET',
data: "value=test",
success : function (result) {
document.getElementById('hello').value = result;
},
error : function () {
}
});
uj5u.com熱心網友回復:
你真的不應該繼續這個設計。正確使用回呼并正確地將您的界面與后端分離。
但是,如果您想在這里偷工減料,您應該能夠決議生成的 HTML 字串(提供其有效性),然后將決議的內容插入到 DOM 中,這應該可以實作您想要的:
$.ajax({
url : 'index.php',
type : 'GET',
data: "value=test",
success : function (result) {
document.appendChild(new DOMParser(result, "text/html").getRootNode().body);
},
error : function () {
}
});
uj5u.com熱心網友回復:
看到您關于不希望我們使用 JavaScript 的評論,因為用戶可以看到代碼,并且更喜歡在 PHP(服務器端)中使用它...您可以完全跳過 Ajax,只需放置類似...
<input type="text" id="hello" value="<?php echo $variableWithData; ?>" />
...進入 PHP 頁面,發送到客戶端的 HTML 將具有類似...
<input type="text" id="hello" value="please work" />
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/456337.html
標籤:javascript 阿贾克斯
