2016-11-15 141 views
0

我试过在SO上搜索这个,也是通过Google,但是提到的选项目前还没有工作。我不会说代码编写不正确,它可能就是我完成设置的方式,这是错误的。但我已经尝试了不同类型的解决方案来解决这个问题,但到目前为止它仍然无法正常工作。从php和.dat填充下拉列表

只是一个快速的信息提醒,我是第一年的IT学生,我们还没有开始使用MySQL。

这是我的指数看起来像至今:

window.onload = oppstart; 

var xmlhttp; 

function oppstart() { 
    document.getElementById("registrer").onclick = lagre; 
} 

function lagre(){ 
    var nedtrekksliste = document.getElementById("nedtrekksliste").value; 
    var navn = document.getElementById("navn").value; 
    var epost = document.getElementById("epost").value; 

    xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = statusforandring; 

    var url = "registrer.php?nedtrekksliste=" + nedtrekksliste + "&navn=" + navn + "&epost=" + epost; 

    xmlhttp.open("GET",url,true); 
    xmlhttp.send(); 

    function statusforandring(){ 

    if (xmlhttp.readyState === 4 && xmlhttp.status === 200){ 
     document.getElementById("utskrift").innerHTML = "Du har nå registert påmelding til en av våre presentasjoner. Takk og ha en fin dag videre hilsen Enigma!"; 
    } 
    } 
} 

这是我写了我的PHP:

$nedtrekksliste = $_GET["nedtrekksliste"]; 
    $navn = $_GET["navn"]; 
    $epost = $_GET["epost"]; 

    $linje = $nedtrekksListe . "¤" . $navn . "¤" . $ePost . "¤" . "\n"; 

    $fil = fopen("data.dat", "a"); 
    fwrite = ($fil, $linje); 
    fclose ($fil); 

    echo "Du har nå registrert emnevalg, takk!"; 

最后,这是我想要填充数据内容客栈到下拉列表,而我想要的信息是在.dat文件格式:

812¤SuperIT¤2016-12-06 18:00¤25¤ 
135¤OddIT¤2016-01-10 17:25¤10¤ 
614¤MediaHuset¤2016-12-14 16:15¤67¤ 
1337¤Elite¤2017-02-22 15:45¤31¤ 
135¤ParIT¤2016-03-17 18:30¤7¤ 
147¤L2P¤2017-01-10 20:00¤5¤ 

我得到的任务是创建一个reg用于选择学生希望参加的演讲的选项之一。我已经修复了注册按钮和2个输入文本区域,这些区域是供学生写他们的姓名和电子邮件的。所以我似乎无法解决下拉列表问题。

回答

0

阅读PHP中的文件是相当简单的,如果你的指数是HTML和PHP的组合,你可以阅读data.dat文件,并从HTML本身内部构建选择:

的index.php

<select name="presentations"> 

     <?php 

      // path to your file (in this case, both files within same dir) 
      $filename = "data.dat"; 

      // open the file in read only monde 
      $file = fopen($filename, "r"); 

      // get the file size, read and store the content in '$fileText' 
      $filesize = filesize($filename); 
      $filetext = fread($file, $filesize); 

      // seperate the content of the data file into an array of lines 
      $lines = explode("\n", $filetext); 

      // loop through every line 
      for ($i = 0; $i < sizeof($lines); $i++) { 

       // seperate this line according to the seperator '¤' 
       $members = explode("¤", $lines[$i]); 

       // we can now access the individual members of this line 
       $id = $members[0]; 
       $name = $members[1]; 
       $datetime = $members[2]; 
       $room = $members[3]; 

       // outputs a 'Option' element inside the SELECT of our HTML page 
       echo '<option value="'. $id . '">' . $name . '</option>'; 
      } 

     ?> 

</select> 

如果索引仅仅是HTML,可以构建在PHP中的JSON对象,然后(以类似的方式如上)构建选择用JavaScript。

然后,您需要填写您的JavaScript获取所选演示:

functions.js

<script type="text/javascript"> 

    // SELECT element on HTML page 
    var selected = document.getElementById("presentations"); 

    // storing the ID of the selected field 
    var ID_presentation = selected.options[selected.selectedIndex].value; 
    // OR 
    // storing the name 
    var ID_presentation = selected.options[selected.selectedIndex].text; 
</script> 

我希望这可以帮助你。

+0

非常感谢所有支持!我用第一种方法解决了下拉列表问题。我还发现,我编写代码的方式是让用户写入新的.dat文件。 –