3 回答

TA貢獻1798條經驗 獲得超7個贊
是否可以顯示帶有 url 的 div?
我在上面添加了您的標題,因為我可以幫助您解決這個問題,但我并沒有真正理解您的其余問題是什么。您能否通過使您的問題更準確來進一步幫助我們?
:target在 CSS 中使用偽元素選擇器。通過這種方式,您可以偵聽散列或#在 URL 中并選擇id與散列匹配的元素。
如果可能的話,使用類來隱藏或顯示元素以將 HTML 與 CSS 分開。
所以添加指定元素狀態的CSS(默認、目標和隱藏)。在您的JS 中切換到更改類而不是內聯樣式屬性。如果你這樣做,你就會錯過一些最好的 CSS 特性。
在您的PHP 中,只需添加一個#帶有要顯示到重定向 URL 的元素的 ID。在你的情況下#reg-Page。
HTML
<div id="reg-Page">
<!-- Form, and others -->
</div>
CSS
#reg-Page {
display: none;
}
#reg-Page:target {
display: block;
/* Set your properties here */
}
.hidden {
display: none;
}
JS
function regForm() {
var logWindow = document.getElementById('reg-Page');
if (!logWindow.classList.contains('hidden')) {
logWindow.classList.add('hidden')
} else {
logWindow.classList.remove('hidden')
}
}
PHP
<?php
// Add the ID of the div with add # before it at the end of the page.
header("Location: ../index.php/?error=emptyfields&uid=".$username."&mail=".$email.'#reg-Page');
?>
讓我知道我是否正確理解了您的問題以及這是否有幫助。

TA貢獻1966條經驗 獲得超4個贊
在index.php您可以檢查是否一個錯誤信息被設置到URL并使用該信息以輸出比特JS的觸發功能,使形成時,頁面已準備就緒:
<?php if (isset($_GET['error'])): ?>
<script type="text/javascript">
window.addEventListener("load", regForm);
</script>
<?php endif; ?>

TA貢獻1772條經驗 獲得超8個贊
我嘗試在php中調用js函數,在我用header函數發回后,但沒有奏效。
這最像一個競爭條件。您的服務器正在發送一個 html 文件,其中包含一個 script 標簽和一個 div 標簽,但哪個首先加載,以及在腳本運行時可以訪問 DOM 的哪些部分,使用此方法不清楚。至少你應該這樣做:
?>
<script src="js/scripts.js" type="text/javascript">
$(regForm);
</script>
<?php
假設您有 jQuery,使用$(document).ready() 速記。這里的想法是該函數在 DOM 完成之前不會運行(即瀏覽器已解析到文檔的末尾),然后您的腳本有機會找到它想要取消隱藏的 div。
但是,僅供參考,這是一種過時的做事方式。您應該了解有關客戶端/服務器編程的更多信息(一些評論者提供了有關此的鏈接)。我會將系統構建得更像一個單頁應用程序,其中服務器有一個 API,客戶端可以根據表單發送 xhr 請求,并根據服務器的響應采取行動。這對于您描述的 php/mysql 堆棧是完全可能的。
- 3 回答
- 0 關注
- 268 瀏覽
添加回答
舉報