试图找到被点击的按钮,并将结果推送到DB

Trying to find which button was clicked, and pushing the result to DB

本文关键字:结果 DB 按钮      更新时间:2023-09-26

这是我的JS脚本,在我的头标签中:

<script>
            $(document).ready(function() {
                $(".chooseMood").click(function(){
                    var id = $(this).attr('id');

                    $.ajax({
                        url: 'demosys.php',
                        data: {mood: $( '#id' ).val(),
                        success: function(data){
                            $('#mood').html(data);   
                        }
                    });
                });
            }); 
            </script>

有按钮的HTML:

<div class = "chooseMood">
                    <button type="submit" name="happy" id = "happy" value="happy_btn_was_clicked">
                        <img src="Images/happy.png" />
                    </button>
                    <button type="submit" name="sad" id="sad" value="sad_btn_was_clicked">
                        <img src="Images/sad.jpg" />
                    </button>
                    <script>
                     $('#happy').click(function() {
                         $("#sad").hide();
                     });
                    $('#sad').click(function() {
                         $("#happy").hide();
                     });                         
                    </script>

                </div>

php文件:

<?php
function submitMood($mood){
  $db_connection = new mysqli(/////);
  if(mysqli_connect_errno()){
    echo "Connection Error!";
    return;
  }

  $recentMood = mysqli_query($db_connection, "SELECT * FROM `DemoUser` ORDER BY date DESC LIMIT 1'");
  $today = date('Y-m-d');

  if($recentMood['date'] != $today){
     mysqli_query($db_connection, "INSERT INTO DemoUser (Mood, date) VALUES('$mood' , NOW())");
     echo "Mood recorded!";
  }
  else{

  echo "Mood already recorded.";
  }
}
submitMood($_GET['mood']);
?>

我正试图找出哪个按钮被点击了。每个按钮都与一个情绪相关联,我想在点击后将该情绪插入数据库。现在,我的情绪没有被添加到数据库中。

您不需要ID,只需使用this 获取按钮的值

 $(".chooseMood button").click(function (e) {
     e.preventDefault(); /* prevent form submit*/
     var mood = $(this).attr('value');
     $.ajax({
         url: 'demosys.php',
         data: {
             mood: mood,
             success: function (data) {
                 $('#mood').html(data);
             }
         });
     });
});

我认为您的代码运行良好,但有一个小问题。将您的代码更改为:

data: { mood: $('#' + id).val() },

您应该连接'#'+id,然后读取其值。你的选择器也错了:

$(".chooseMood button").click(...