繁体   English   中英

PHP无法与html,js / jquery和ajax一起正常使用

[英]PHP not working properly with html, js/jquery and ajax

我在html中有一个简单的注册表格,旨在“逐步”填写表格。 为此,我正在使用带有ajax的javascript来调用php,该php应该发送带有输入值的电子邮件。 但是昨天它发送没有该值的电子邮件,并且无法更新目录。 今天发生的事情是相同的代码不再起作用(并且没有任何更改)。 Ajax仅返回置于警报中的错误消息。

这是代码:

HTML形式:

<form id="regForm" action="doneregister.php" method="post" enctype="multipart/form-data">
            <div class="tab">
                <h1 class="reg">Kapitán tímu</h1><br>
                <p><input type="text" name="meno" placeholder="Meno a priezvisko" oninput="this.className = ''"></p>
                <p><input type="text" name="nick" placeholder="Nick v hre" oninput="this.className = ''"></p>
                <p><input type="email" name="email" placeholder="Email" oninput="this.className = ''"></p>
                <p><input type="text" name="steamID" placeholder="Steam ID" oninput="this.className = ''"></p>
            </div>
            <div class="tab">
                <h1 class="reg">Hráč 2</h1><br>
                <p><input type="text" name="meno2" placeholder="Meno a priezvisko" oninput="this.className = ''"></p>
                <p><input type="text" name="nick2" placeholder="Nick v hre" oninput="this.className = ''"></p>
                <p><input type="text" name="steamID2" placeholder="Steam ID" oninput="this.className = ''"></p>
            </div>
            <div class="tab">
                <h1 class="reg">Hráč 3</h1><br>
                <p><input type="text" name="meno3" placeholder="Meno a priezvisko" oninput="this.className = ''"></p>
                <p><input type="text" name="nick3" placeholder="Nick v hre" oninput="this.className = ''"></p>
                <p><input type="text" name="steamID3" placeholder="Steam ID" oninput="this.className = ''"></p>
            </div>
            <div class="tab">
                <h1 class="reg">Hráč 4</h1><br>
                <p><input type="text" name="meno4" placeholder="Meno a priezvisko" oninput="this.className = ''"></p>
                <p><input type="text" name="nick4" placeholder="Nick v hre" oninput="this.className = ''"></p>
                <p><input type="text" name="steamID4" placeholder="Steam ID" oninput="this.className = ''"></p>
            </div>
            <div class="tab">
                <h1 class="reg">Hráč 5</h1><br>
                <p><input type="text" name="meno5" placeholder="Meno a priezvisko" oninput="this.className = ''"></p>
                <p><input type="text" name="nick5" placeholder="Nick v hre" oninput="this.className = ''"></p>
                <p><input type="text" name="steamID5" placeholder="Steam ID" oninput="this.className = ''"></p>
            </div>
            <div class="tab">
                <h1 class="reg">Tím</h1><br>
                <p><input type="text" name="nazov" placeholder="Názov tímu" oninput="this.className = ''"></p>
                <p><input type="text" name="skratka" placeholder="Skratka tímu" oninput="this.className = ''"></p>
                <input type="file" name="file" required>
                <p>S odoslaním registrácie súhlasíte s <a href="9wk4l81Gmo2PYYVvGa1c.php" target="_blank">Pravidlami a podmienkami</a></p>
            </div>
            <div style="text-align:center;margin-top:40px;">
                <div style="float:right;">
                    <button type="button" id="firstBtn" onclick="redirect();">Späť na WindCup</button>
                    <button type="button" id="prevBtn" onclick="nextPrev(-1)">Späť</button>
                    <button type="button" id="nextBtn" onclick="nextPrev(1)">Ďalej</button>
                </div>
            </div>
            <div style="text-align:left;margin-top:50px;">
                <span class="step"></span>
                <span class="step"></span>
                <span class="step"></span>
                <span class="step"></span>
                <span class="step"></span>
                <span class="step"></span>
            </div>
        </form>

JS / jQuery和Ajax调用php:

function nextPrev(n) {
                var x = document.getElementsByClassName("tab");
                if (n == 1 && !validateForm()) return false;
                x[currentTab].style.display = "none";
                currentTab = currentTab + n;
                if (currentTab >= x.length) {
                    jQuery.ajax({
                        type: "POST",
                        url: "doneregister.php",
                        data: jQuery("#regForm").serialize(),
                        success: function(response) {
                            if (response) {
                                jQuery(location).attr('href', "www.windcup.sk/?register=1");
                            } else {
                                alert("Error");
                            }
                        }
                    });
                    return false;
                }
                showTab(currentTab);
            }

和php代码:

if(isset($_POST)) {
    //kapitan
    $meno = $_POST["meno"];
    $nick = $_POST["nick"];
    $email = $_POST["email"];
    $steamID =  $_POST["steamID"];

    //hrac 2
    $meno2 = $_POST["meno2"];
    $nick2 = $_POST["nick2"];
    $steamID2 =  $_POST["steamID2"];

    //hrac 3
    $meno3 = $_POST["meno3"];
    $nick3 = $_POST["nick3"];
    $steamID3 =  $_POST["steamID3"];

    //hrac 4
    $meno4 = $_POST["meno4"];
    $nick4 = $_POST["nick4"];
    $steamID4 =  $_POST["steamID4"];

    //hrac 5
    $meno5 = $_POST["meno5"];
    $nick5 = $_POST["nick5"];
    $steamID5 =  $_POST["steamID5"];

    //Tim
    $nazov = $_POST["nazov"];
    $skratka = $_POST["skratka"];

    //poslanie emailu
    $destination = 'info@windcup.sk';
    $predmet = 'Registrácia tímu';
    $obrazok = basename($_FILES["file"]["name"]);
    $sprava = "Kapitán tímu: $meno Nick: $nick Email: $email SteamID: $steamID\n Hráč2: $meno2 Nick: $nick2 SteamID: $steamID2\n Hráč3: $meno3 Nick: $nick3 SteamID: $steamID3\n Hráč4: $meno4 Nick: $nick4 SteamID: $steamID4\n Hráč5: $meno5 Nick: $nick5 SteamID: $steamID5\n Tím: $nazov Skratka: $skratka Názov obrázku: $obrazok";
    $mail = mail($destination, $predmet, $sprava);

    //obrazok
    $target_dir = "style/img/teams/";
    $target_file = $target_dir . basename($_FILES["file"]["name"]);
    $upload_ok = 1;
    $imageType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
    $check = getimagesize($_FILES["file"]["tmp_name"]);

    if($check !== false) {
        //je to obrazok
        $upload_ok = 1;
    } else {
        //nie je to obrazok
        $upload_ok = 0;
    }

    if($_FILES["file"]["size"] > 500000) {
        $upload_ok = 0;
    }

    if($imageType != "jpg" && $imageType != "jpeg" && $imageType != "png" && $imageType != "gif") {
        $upload_ok = 0;
    }

    if($upload_ok == 0) {
        echo "Error";
    } else {
        if(move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
            //nic
        } else {
            echo "Error";
        }
    }
}

感谢帮助!

首先,您需要定义currentTab:var currentTab = 0; //可能会成功

其次,您没有列出整个JS,因为我看不到showTab()函数或nextPrev()的初始化

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM