输出未定义

Output undefined

本文关键字:未定义 输出      更新时间:2023-09-26

我正在尝试一种注册到不同类的方法,在那里你应该输入你的名字、电子邮件和类的下拉框。信息应该进入一个.dat文件,所有参与者都在该文件中注册,但不知何故,它们被定义为未定义。

<script>
window.onload = startup;
var xmlhttp;
function startup() {
    document.getElementById("save").onclick = save;
    }
function save() {
    var url = "proxy.php?class=" + class + "&name=" + name + "&mail=" + mail;
    var class = document.getElementById("class").value;
    var name = document.getElementById("name").value;
    var mail = document.getElementById("mail").value
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = status;
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}
function status(){
    var kurs = document.getElementById("class").value;
    if (xmlhttp.readyState ===4 && xmlhttp.status === 200) {
        document.getElementById("output").innerHTML = "Signed up for" + kurs;
    }
}
</script>   
<body>
        <input id = "name" type="text" placeholder="Name"></input>
        <input id = "mail" type="text" placeholder="Email"></input>
        <form action="proxy.php" method="get">
            <select id="class">
                <option value="812" id="it">SuperIT</option>
                <option value="614" id="mh">MH</option>
            </select>
        </form>
        <button id="save" onclick="save()">Sign up</button>
        <a href="paameldinger.dat">paamelding.dat</a>         // to view the .dat file
        <p id="output"></p>

通过一个看起来像这样的代理运行它;

<?php
$name = $_GET["name"];
$mail = $_GET["mail"];
$class = $_GET["select"];
$read = fopen("paameldinger.dat", "a");
$line = $class . "¤" . $name . "¤" . $mail . "'n";
fwrite($read,$line);
fclose($read);
?> 

输出结果如下:

¤undefined¤undefined
¤undefined¤undefined

编辑;有点把代码转换成了英语,因为我足够愚蠢,用挪威语写代码,所以代码中可能混淆了一些挪威语单词,很抱歉!

在定义变量之前先使用变量,当然它们都是未定义的。更改您的代码如下:

var class = document.getElementById("class").value;
var name = document.getElementById("name").value;
var mail = document.getElementById("mail").value;
var url = "proxy.php?class=" + class + "&name=" + name + "&mail=" + mail;