为什么不是';t;订阅”;按钮工作


Why isn't the "subscribe" button working?

订阅按钮会将艺术家和电子邮件发送到数据库的"订阅"部分。单击按钮时,不会发生任何事情。我对这件事很陌生,似乎想不通。以下是.html.php和.js文件。(我唯一拿出的是背景)

<!DOCTYPE html>
<script>
        $(function() {
                $("#top-section").load("top-section.html", function() {
                    $($(".nav-button").get(2)).attr("id","active");
                    $.getJSON("php/get_artists.php", function(data) {
                         $.each(data, function() {
                            $("#artist-dropdown").append($("<option></option>").val(this.id).html(this.uniqueid));
                        });
                    });
                });
            });
        </script>
        <script src="js/bootstrap.min.js"></script>
        <div id="container">
            <div id="top-section">
            </div>
        </div>
        <div style="margin:0 auto;width:75%;text-align:center">
        <form id="artwork-subscribe" enctype="multipart/form-data">
                        <h3>Subscribe to Artist</h3>
                        <div class="inputs">
                         <label>Artist   </label>
                         <select id="artist-dropdown" form="artwork-subscribe" name="uniqueID"></select><br>
                         <label>Email   </label>  
                         <input id="email" type="text" name="email"><br>
                        </div>
                        <div>
                            <input id="submit-email" type="button" value="Subscribe" >
                        </div>
         </form>
         <label id="artwork-status"></label>
        </div>
    </body>
</html>

$(document).ready(function() {
    $("#artwork-subscribe").on("subscribe", function() {
        var $stat = $("#artist-status");
        var $form = $("#artwork-subscribe");
        if (!isFilled($form)) {
            $stat.text("Failed");
            alert("Must complete all fields.");
            return;
        }
        $stat.text("");
        $.post("php/subscribe_artists.php", $(this).serialize())
        .success(function(data) {
            var response = $.parseJSON(data);
            if (response.stat == "success") {
                $form[0].reset();
                $stat.text("Success!");
                getArtists($("#artist-dropdown"));
            } else if (response.stat == "error") {
                $stat.text("Failed!");
                alert(response.message);
            }
        })
        .fail(function(data) {
            $stat.text("Failed: " + data);
        });
    });

    function isFilled($form) {
        var filled = true;
        $.each($form.serializeArray(), function(i, field) {
            if (field.value.trim() == "") {
                filled = false;
            }
        });
        return filled;
    }
    function getArtists($dropdown) {
        $dropdown.find("option").remove();
        $.getJSON("php/get_artists.php", function(data) {
            $.each(data, function() {
                $dropdown.append($("<option></option>").val(this.id).html(this.uniqueid));
            });
        });
    }
  });
<?php
    require "db_connect.php";
//validates email
    $email = test_input($_POST["email"]);
    if (!preg_match("/(['w'-]+'@['w'-]+'.['w'-]+)/",$email))
            {
                $emailErr = "Invalid email format"; 
            }
//enter into table
$email = mysqli_real_escape_string($_POST['email']);
$sql = "INSERT INTO subscriptions (email) VALUES ('$email')";
$result = mysql_query($sql);

//select from artist
$artist = mysqli_real_escape_string($con,$_POST["artist"]);
    $artist_name = "";
    $result = mysqli_query($con, "SELECT artist FROM artists where id=".$artist);
    while($row = mysqli_fetch_array($result)) {
        $artist_name = $row['artist'];
    }
?>

试试这个:

更改:

$("#artwork-subscribe").on("subscribe"

收件人:

$("#artwork-subscribe").on("submit"

这个:

<input id="submit-email" type="button" value="Subscribe" >

收件人:

<input id="submit-email" type="submit" value="Subscribe" >