簡體   English   中英

在兩個JavaScript函數之間切換

[英]Switch between two javascript functions

基本上,我希望php決定網站的哪個版本加載以下內容:

    <?php 

    $sql="SELECT _1 FROM Player_Registry WHERE Player_Name = $_SESSION[user_name]"; 
    $result_1=mysql_query($sql); 
    if($result_1 < 10) { ?> 
      <script type="text/javascript"> 
        function setdescription_1() { 
          document.getElementById('title_box').innerHTML = 'Alchemist'; 
        } 
      </script> 
    <?php 
    } 
    else { 
    ?> 
      <script type="text/javascript"> 
        function setdescription_1() { 
          document.getElementById('title_box').innerHTML = 'Master Alchemist'; 
        } 
      </script> 
    <?php 
    }?> 

問題是它們都運行,所以即使我將條件設置為true,我仍然會得到第二個。

據我所知,完整的源代碼與正在查看的源代碼完全相同,但是站點預覽中沒有顯示任何php(實際上是存在的,因為我的另一台計算機可以查看站點而沒有看到php)但是當它查看源代碼時,可以看到它不應該看到的代碼):

<head>

<title>Blank</title>

<link rel="icon" type="image/png" href="Pictures/favicon.png">

<meta name="description" content="" />

<meta name="keywords" content="" />

<meta name="author" content="" />

<meta name="owner" content="" />

<meta name="copyright" content="" />

<meta http-equiv="content-type" content="text/html;charset=UTF-8" />

<link rel="stylesheet" href="TreeStyle.css" type="text/css" />
</head>

<body>


<div style="width:100%; height:12.5%;">
    <p style="font-size: 300%;"><b>Skill Tree: Alchemist</b></p>
</div>
<div style="width:100%; height:75%;">
<?php
$sql="SELECT _1 FROM Player_Registry WHERE Player_Name = $_SESSION[user_name]";
$result_1=mysql_query($sql);
if($result_1 < 10)
    {
    ?>
    <script type="text/javascript">
    function setdescription_1()
        {
        document.getElementById('title_box').innerHTML = 'Alchemist';
        document.getElementById('desc_box').innerHTML = 'Turn surroundings into base element costs.';
        }
    </script>
    <?php
    }
else
    {
    ?>
    <script type="text/javascript">
    function setdescription_1()
        {
        document.getElementById('title_box').innerHTML = 'Master Alchemist';
        document.getElementById('desc_box').innerHTML = 'Equiped Philosopher&#39;s Stone allows bypass of element costs.';
        }
    </script>
    <?php
    }
$sql="SELECT _2 FROM Player_Registry WHERE Player_Name = $_SESSION[user_name]";
$result_2=mysql_query($sql);
if($result_2 < 10)
    {
    ?>
    <script type="text/javascript">
    function setdescription_2()
        {
        document.getElementById('title_box').innerHTML = 'Learn Runes';
        document.getElementById('desc_box').innerHTML = 'Create Runes and Cores up to Lv.<?php echo "$result_2" ?>';
        }
    </script>
    <?php
    }
else
    {
    ?>
    <script type="text/javascript">
    function setdescription_2()
        {
        document.getElementById('title_box').innerHTML = 'Comprehension';
        document.getElementById('desc_box').innerHTML = 'Create Runes and Cores up to Lv.10';
        }
    </script>
    <?php
    }
?>
    <script type="text/javascript">
    function cleardescription()
        {
        document.getElementById('title_box').innerHTML = 'Skill Name';
        document.getElementById('desc_box').innerHTML = 'This is the skill description.';
        }
    </script>
    <table>
        <tr>
            <td></td>
            <td><a href='AddSkillPoints.php?skill=_1' onmouseover="setdescription_1()" onmouseout="cleardescription()"><img src="Alchemist.png" /></a></td>
            <td><img src="Blank_Tile.png"/></td>
            <td><a href='AddSkillPoints.php?skill=_2' onmouseover="setdescription_2()" onmouseout="cleardescription()"><img src="Learn_Runes.png"/></td>

etc..............

    </table>
    </div>
    <div style="width:100%; height:12.5%;">
        <b><p id="title_box" style="font-size: 150%;">Skill Name</p></b><br />
        <p id="desc_box">This is the skill description.</p>
    </div>
</div>
</body>
</html>

我不相信如果您的PHP實際被解析,您不會兩者兼得。 如果未解析,則查看網頁的源代碼后,您將看到與粘貼的代碼完全相同的代碼

確保php被解析-如果沒有,那就是問題所在。

除非您必須發布不允許標簽的處理,否則腳本標簽通常不會干擾解析-例如,如果您使用某種框架,而該框架不應該輸入php而是一些標記化的代碼

這是一個更好的示例-請注意,我將腳本移到了頭部,但並沒有真正進行優化-因此,如果您在一次調用中獲得兩個值並創建一個對象數組,則php可能會更加優雅

<?PHP
    $sql="SELECT _1 FROM Player_Registry WHERE Player_Name = $_SESSION[user_name]";
    $result_1=mysql_query($sql);
    $sql="SELECT _2 FROM Player_Registry WHERE Player_Name = $_SESSION[user_name]";
    $result_2=mysql_query($sql);
%><html>
    <head>
    <title>Blank</title>
    <link rel="icon" type="image/png" href="Pictures/favicon.png">
.
.
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
    <link rel="stylesheet" href="TreeStyle.css" type="text/css" />
    <script type="text/javascript">
    var result1 = parseInt("<?PHP echo $result_1; ">,10);
    var skillLevel = (result1>=10?'Master ':'')+'Alchemist';
    var skillDesc  = result1>=10?"Equipped with Philosopher´s Stone allows bypass of element costs.":"Turn surroundings into base element costs.";

    var runeLevel  = result2>=10?'Comprehension':'Learn Runes';
    var runeDesc   = 'Create Runes and Cores up to Lv.'+result2; 

    window.onload=function() {
      setdescription_1();
    }
    function setdescription_1() {
          document.getElementById('title_box').innerHTML = skillLevel;
          document.getElementById('desc_box').innerHTML =  skillDesc; 
    }         
    function setdescription_2() {
          document.getElementById('title_box').innerHTML = runeLevel;
          document.getElementById('desc_box').innerHTML =  runeDesc; 
        }
    function cleardescription() {
            document.getElementById('title_box').innerHTML = 'Skill Name';
            document.getElementById('desc_box').innerHTML = 'This is the skill description.';
    }
        </script>



    </head>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM