[英]Is there a better way to do this than echo?
我正在使用PHP留言簿,該留言簿具有一些表單驗證(例如出現錯誤時突出顯示字段),我只知道如何使用JavaScript。
我有一個簡單的表格,看起來像這樣:
<form action="$_SERVER['SELF']" enctype="multipart/form-data" method="post">
<label for="guest_name">Guest Name:</label>
<input id="post-name" class="noerror" type="text" name="guest_name">
<input type="submit" name="submit" value="Let 'er rip" />
</form>
我正在驗證以下功能:
//Name Validation
if(strlen($_POST["guest_name"]) != 0){
global $Name;
$Name = $_POST["guest_name"];
} else {
echo '<script type="text/javascript">
$(document).ready(function(){
$("#post-name").removeClass("noerror").addClass("error");
});
</script>';
}
它可以工作,但是我忍不住覺得這是一種非常低效的方法,但是我對PHP的了解還不是很清楚如何解決這個問題。
您可以在沒有js的情況下通過多種方式來執行此類操作,例如:
<form action="" enctype="multipart/form-data" method="post">
<label for="guest_name">Guest Name:</label>
<?php
$class = 'noerror';
if(empty($_POST["guest_name"])){
$class = '';
}
?>
<input id="post-name" class="<?php echo $class ?>" type="text" name="guest_name">
<input type="submit" name="submit" value="Let 'er rip" />
</form>
請注意,雙負數很容易造成混淆(沒有錯誤),因此始終使用正邏輯檢查是一個更好的主意:
<?php
$class = '';
if(empty($_POST["guest_name"])){
$class = 'error';
}
?>
<input id="post-name" class="<?php echo $class ?>" type="text" name="guest_name">
堅持這一原則通常會使代碼更簡單易懂。
這也是可能的
<?php
if(strlen($_POST["guest_name"]) != 0) :
$Name = $_POST["guest_name"];
else :
?>
<script type="text/javascript">
$(document).ready(function(){
$("#post-name").removeClass("noerror").addClass("error");
});
</script>';
<?php endif; ?>
不要發送巨大的腳本。 發送帶有簡單錯誤代碼的自定義標頭。 您的響應處理程序可以偵聽標頭(與響應文本不同)並相應地執行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.