2011-06-03 92 views
0

我需要一組額外的眼睛。我經歷了這麼多次沒有成功。問題是getFilename函數,顧名思義,它應該獲取上傳文件的文件名。不管我做什麼,它似乎都不起作用,所以我必須錯過一些東西。JavaScript函數未執行

<?php 
    $data = $_GET["data"]; 

    if($data) 
    { 
     echo ' 
      <head> 
       <style> 
        .atklf 
        { 
         color: Red; 
         background: #292929; 
         border: 1px solid Red 
        } 
       </style> 
      </head> 
      <iframe name="fuh1" style="display: none;"></iframe> 
      <form 
       action="attklstformupldproc.php" 
       method="post" 
       target="fuh1" 
       enctype="multipart/form-data"> 
       <table border="2" cellpadding="3" frame="void" style="color: red; width:100%;"> 
        <tr> 
         <td>Priority:</td> 
         <td>Pirate: <span id="Pirreq"></span></td> 
         <td>Level:</td> 
         <td>Known Fleet Level:</td> 
         <td>X:</td> 
         <td>Y:</td> 
        </tr> 
        <tr> 
         <td> 
          <select id="Priority" class="atklf" name="Priority"> 
           <option value="1">1</option> 
           <option value="2">2</option> 
           <option value="3">3</option> 
           <option value="4">4</option> 
           <option value="5">5</option> 
           <option value="6">6</option> 
           <option value="7">7</option> 
           <option value="8">8</option> 
           <option value="9">9</option> 
           <option value="10">10</option> 
          </select> 
         </td> 
         <td><input id="Pirate" class="atklf" name="Pirate" type="text" size="17" /></td> 
         <td><input id="Level" class="atklf" name="Level" type="text" size="4" /></td> 
         <td><input id="Fleet_Level" class="atklf" name="Fleet_Level" type="text" size="4" /></td> 
         <td><input id="XCoord" class="atklf" name="XCoord" type="text" size="5" /></td> 
         <td><input id="YCoord" class="atklf" name="YCoord" type="text" size="5" /></td> 
        </tr> 
        <tr> 
         <td>Outpost Level:</td> 
         <td>Known Wall Level:</td> 
         <td>Known Turret Level:</td> 
         <td colspan="2">Turret Types:</td> 
         <td>Group: <span id="Grpreq"></span></td> 
        </tr> 
        <tr> 
         <td><input id="Outpost_Level" class="atklf" name="Outpost_Level" type="text" size="4" /></td> 
         <td><input id="Knwn_wall_lvl" class="atklf" name="Knwn_wall_lvl" type="text" size="4" /></td> 
         <td><input id="Knwn_turr_lvl" class="atklf" name="Knwn_turr_lvl" type="text" size="4" /></td> 
         <td colspan="2" rowspan="2"><textarea id="Turret_Types" class="atklf" name="Turret_Types" rows="5" cols="16"></textarea></td> 
         <td rowspan="2"> 
          <select id="Group" class="atklf" name="Group"> 
           <option value="null">Pick a group</option> 
           <option value="General">General</option> 
           <option value="Sector 23">Sector 23</option> 
           <option value="Max Chaos">Max Chaos</option> 
          </select> 
         </td> 
        </tr> 
        <tr> 
         <td>Base Picture:</td> 
         <td colspan="2"><input id="Base_Picture" name="uploaded_bp" class="atklf" type="file" /></td> 
        </tr> 
        <tr> 
         <td colspan="6">Notes:</td> 
        </tr> 
        <tr> 
         <td rowspan="1" colspan="6"><textarea id="Notes" class="atklf" name="Notes" rows="7" cols="60"></textarea></td> 
        </tr> 
        <tr> 
         <td align="center"><input id="hlfsubmit" class="atklf" name="submit" value="Submit" type="submit" style="width: 90px;" onClick="assignVars()" /></td> 
        </tr> 
        <input type="button" class="atklf" value="Reset debug" onClick="resetDebug()"/> 
        <input type="button" class="normal" value="Get File name" onClick="getFilename1()"/> 
       </table> 
      </form> 
      <script type="text/javascript"> 

      function resetDebug() { 
       document.getElementById("debug1").innerHTML = ""; 
      } 

      function formFieldvalue(id) { 
       return document.getElementById(id).value; 
      } 

      function getFilename1() { 
       document.getElementById("debug1").innerHTML = formFieldvalue("Base_Picture"); 
      } 

      Pri = "1"; 
      Pir = "null"; 
      Grp = "null"; 

      function assignVars() { 
       Pri = document.getElementById("Priority").options[document.getElementById("Priority").selectedIndex].value; 
       Pir = encodeURIComponent(formFieldvalue("Pirate")); 
       if (formFieldvalue("Level")) { 
        Lvl = encodeURIComponent(formFieldvalue("Level")); 
       } 
       else { 
        Lvl = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("Fleet_Level")) { 
        Flv = encodeURIComponent(formFieldvalue("Fleet_Level")); 
       } 
       else { 
        Flv = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("XCoord")) { 
        XCd = encodeURIComponent(formFieldvalue("XCoord")); 
       } 
       else { 
        XCd = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("YCoord")) { 
        YCd = encodeURIComponent(formFieldvalue("YCoord")); 
       } 
       else { 
        YCd = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("Notes")) { 
        Nts = encodeURIComponent(formFieldvalue("Notes")); 
       } 
       else { 
        Nts = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("Outpost_Level")) { 
        Opl = encodeURIComponent(formFieldvalue("Outpost_Level")); 
       } 
       else { 
        Opl = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("Knwn_wall_lvl")) { 
        Kwl = encodeURIComponent(formFieldvalue("Knwn_wall_lvl")); 
       } 
       else { 
        Kwl = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("Knwn_turr_lvl")) { 
        Ktl = encodeURIComponent(formFieldvalue("Knwn_turr_lvl")); 
       } 
       else { 
        Ktl = encodeURIComponent("?"); 
       } 
       if (formFieldvalue("Turret_Types")) { 
        Tty = encodeURIComponent(formFieldvalue("Turret_Types")); 
       } 
       else { 
        Tty = encodeURIComponent("?"); 
       } 
       Grp = encodeURIComponent(formFieldvalue("Group")); 
       insertAttacktablerow(); 
       } 

       if (window.addEventListener) { 
        window.addEventListener("load", insertAttacktablerow, false); 
       } 
       else if (window.attachEvent) { 
        window.attachEvent("onload", insertAttacktablerow); 
       } 
       function insertAttacktablerow() { 
        if (Pir != "null" && Grp != "null") { 
         document.getElementById("Pirreq").innerHTML = ""; 
         if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
          xmlhttp=new XMLHttpRequest(); 
         } 
         else { // code for IE6, IE5 
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
         } 
         xmlhttp.onreadystatechange=function() { 
          if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
           //updateAttacktable(); 
           document.getElementById("debug1").innerHTML=xmlhttp.responseText; 
          } 
         } 
         xmlhttp.open("GET","/attacklist/attklstformproc.php?Pri=" + Pri + "&Pir=" + Pir + "&Lvl=" + Lvl + "&Flv=" + Flv + "&XCd=" + XCd + "&YCd=" + YCd + "&Nts=" + Nts + "&Opl=" + Opl + "&Kwl=" + Kwl + "&Ktl=" + Ktl + "&Tty=" + Tty + "&Grp=" + Grp + "&data=' . $data . '",true); 
         xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 
         xmlhttp.send(); 
         document.forms[0].reset(); 
        } 
        else if (Pir == "null") { 
         document.getElementById("Pirreq").innerHTML = "(<b>required</b>)"; 
         document.getElementById("Pirreq").style.color = "red"; 
        } 
        else if (Grp == "null") { 
         document.getElementById("Grpreq").innerHTML = "(<b>required</b>)"; 
         document.getElementById("Grpreq").style.color = "red"; 
        } 
       } 

      </script> 
      <span id="debug1"></span>'; 

     } 
     else 
     { 
      echo 'Restricted access.'; 
     } 
+3

方式太多的代碼! – 2011-06-03 07:29:20

+2

你可以在PHP中使用這個結構:'<? if($ foo){?> html代碼'。這將節省很多頭痛。 – pimvdb 2011-06-03 07:30:10

+0

「formFieldvalue」函數在哪裏定義? PS:每個人閱讀這段代碼都需要額外的眼睛。 – 2011-06-03 07:33:19

回答

2

好吧,所以我刪除了我的最後一個答案,因爲我終於花時間來執行您的代碼。如你所知,它適用於我。

這是我建議你做的。刪除您的HTML和JavaScript,並將它們放在一個獨立的html文件中並將其加載到瀏覽器中。添加必要的標籤以使其完成。 (另外,你錯過了一個「body」標籤,而不是這是你問題的根源。)

然後測試它。如果它有效,那麼你的問題來自其他地方,而不是你提供的代碼。你在某處有頁眉和頁腳代碼嗎?

如果它不起作用,開始刪除部分HTML和JavaScript,直到它工作。用它來隔離你的bug的原因。

祝你好運。

+1

'files'屬性似乎只是HTML5 ..還是我錯了?我從來沒有在HTML4中看到過 – 2011-06-03 08:04:02

+0

不,沒有錯。無論如何,這不是他的問題。我只是在黑暗中刺傷。在功能上,他的代碼在我運行時起作用。我可能會稍後刪除這個答案...... – Benry 2011-06-03 08:08:23

+0

查看編輯歷史記錄,看看Yanick和我在說什麼。 – Benry 2011-06-03 08:17:19