PHP kodu javascript

4 Cevap php

Ben mesaj / kutusu açılır görüntülemek için nasıl internet üzerinde bu kodu bulundu.

<? echo "<script language=\"JavaScript\">\n"; 
   echo "alert('$msg1')";
   echo "alert('$msg2')"; 
   </script>"; 
?>

VE

<? echo "<script>alert('$msg1' )</script>" <?

Ben pop-up mesajı ile kullanıcıya mesaj göstermek istiyorum. tüm iletileri tek bir mesaj kutusunda görünür olacaktır. Örneğin, yukarıdaki iletinin iki kutusunda çıktı olacaktır.

Bunun tek bir kutuda tüm yapılabilir? Ben '\ n' ile veya 'br>' ... de olamaz ya da ben yanlış yaptım denedin mi? Herhangi bir fikir? Bu konuda herhangi bir başvuru ya da öğretici var mı?

4 Cevap

<?
   echo "<script type=\"text/javascript\">\n"; 
   echo "alert('$msg1" . '\n' . "$msg2');";
   echo "</script>"; 
?>

EDIT: Ama kullanıcılar alert can sıkıcı bulabilirsiniz. DIV-based dialogs içine bak.

"alert('$msg1" ve "$msg2');" değişken enterpolasyon için izin vermek için çift tırnak kullanın. '\n' bu yüzden eğik çizgi (biz JS, PHP ile yorumlanır olmak istiyorum) bir kaçış olmayacak tek tırnaklı olur. . PHP'nin birleştirme operatörüdür.

Burada birkaç başka sorunlar var.

  • Bu Javascript uyarı çirkin kutuları, ve modal kullanıyor. Bu kullanıcılar için kötü. Tam bir tarayıcı anlamda Modal, yani (tarayıcıya bağlı olarak), kullanıcıların bile gidip bu mesajı ekranda iken başka bir sekmede bir şey yapamaz; onlar ilk önce görevden gerekir. Örneğin bir iyi tarz

    mesaj yerleştirmek için daha iyidir. Hala çok eğimli olsaydı kullanıcılar kutusunu gizlemek için izin (jQuery gibi) bazı mütevazi script kullanabilirsiniz.

  • $ Msg1 ve $ msg2 herhangi bir kesme işaretlerini JavaScript çıktı kaçtı olmayacaktır. Bu değişkenlerin parçası gibi kullanıcı girişini kabul ediyorsanız, bu bir güvenlik sorunu olabilir. Bunu kısmen düzeltmek için () addslashes kullanabilirsiniz, ama onlar görünür, ve muhtemelen de diğer varyantları olabilir eğer aynı zamanda "

Okumak ve yukarıdaki sorunları kabul etmek ve yine bu elde etmek istiyorsanız alternatif (ben hala mükemmel güvenli olup olmadığından emin değilim gerçi), burada daha güvenli:

<?
echo "<script type=\"text/javascript\">"; 
echo "alert('" . str_replace("</", "<'+'/", addslashes($msg1).'\n'.addslashes($msg2)) . "');";
echo "</script>"; 
?>

Yerine:

   echo "alert('$msg1')";
   echo "alert('$msg2')"; 

Deneyin:

   echo "alert('$msg1, $msg2')";

Burada önce göndermek mesajları görüntülemek isterseniz işlenir w3schools.com tutorial adlı örnek değiştirilmiştir:

<html>
   <head>
      <script type="text/javascript">
         function disp_alert()
         {
           <?php echo "alert('".$msg1.'\n'.$msg2."');"; ?>
         }
      </script>
   </head>
   <body>  
      <input type="button" onclick="disp_alert()" value="Display alert box" />    
   </body>
</html>