从表单中取值,从 MySQL 中提取结果,并使用 AJAX 获取结果

Posted

技术标签:

【中文标题】从表单中取值,从 MySQL 中提取结果,并使用 AJAX 获取结果【英文标题】:Taking values from form, pulling results from MySQL, and using AJAX for results 【发布时间】:2015-09-09 23:18:34 【问题描述】:

我在弄清楚如何建立某种连接时遇到了一些麻烦。这是一个我认为可能很简单的项目,我可以在没有帮助的情况下自己完成,但不幸的是我碰壁了。它是一个“锻炼生成器”,基本上会问一些基本问题,并根据您的回答输出推荐的锻炼程序。我用大量的练习构建了mysql数据库,并成功连接了数据库,并制作了表格。

但是,我遇到的麻烦是将这些表单结果存储到变量中,并基于这些变量(例如,如果锻炼天数为 3,则只会打印 3 组锻炼而不是 5 组)输出例程放入与表单相同的 div 中,有效地将其替换为答案,而不是将其放在提交的表单下方。

Index.php

<!DOCTYPE html>
<html>
<?php $page_title = "Workout Generator"; ?>
<link rel="stylesheet" type="text/css" href="style.css">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" ></script>
</head>
<body>
    <?php include("header.php"); ?>
    <?php include("connect.php"); ?>
    <div id="appWindow">



        <h3>Please answer the following questions and click 'Submit' to generate your workout routine.</h3>


        <form id="homeForm" method="post" >
            <label for="name">Name: </label>
            <input type="text" name="name"><br>
            <label for="age">Age: </label>
            <input type="number" name="age"><br>
            <label for="workoutdays">How many days a week can you workout?</label>
            <select name="workoutdays">>
                <option value="1">3</option>
                <option value="2">5</option>
            </select><br>
            <label for="workoutstyle">Do you prefer a gym, or bodyweight exercises?</label>
            <select name="workoutstyle">>
                <option value="1">Gym</option>
                <option value="2">Bodyweight</option>
            </select><br>
            <button type="submit" name="submit">Submit</button>
            <button type="reset" name="reset">Reset</button>
        <div class="form_result"></div>
    </form>


    <?php
        $age = $_POST['age'];
        $workoutdays = $_POST['workoutdays'];
        $workoutstyle = $_POST['workoutstyle'];
    ?>


    </div>



<br><br><br>
<?php include("footer.php"); ?>
</body>
</html>

我不一定想要一个答案给我输入的确切代码,但希望指出正确的方向以从 MySQL 中提取数据,并使用 AJAX 在同一个窗口中打印而无需刷新。

谢谢你

【问题讨论】:

google $.post 或 $.ajax jquery 【参考方案1】:

首先,您需要发布您的请求。用$.ajax这个

//Do this thing on page load
$(function() 
    //handle submit
    $("#homeForm").submit(function(e) 
            //customize your submit
            e.preventDefault();
            $.ajax(
                type: "POST",
                url: youURL, //maybe an url pointing to index.php
                data: yourData, //attach everything you want to pass
                success: function(response) 
                    $("#appWindow").html(response);
                
            );
    );
);

代码应该会有所帮助。您需要确保传递必要的元素并提供正确的 url。在服务器端,生成所需的 html 并作为响应返回。

【讨论】:

【参考方案2】:

在脚本文件中

$(document).ready(function()
    $(document).on('click','#submit_btn',function()
      var url = '/xyz.php'; //full path of the function where you have written the db queries.
      var data = '';//any data that you would like to send to the function.
      $.post(url,data: data, function(result)
         var arr = JSON.parse(result);
      );
   );
);

一旦执行了数据库查询并获得结果,就在 php 文件中。例如

$result = //result of your mysql query.
echo json_encode($result);
exit;

【讨论】:

以上是关于从表单中取值,从 MySQL 中提取结果,并使用 AJAX 获取结果的主要内容,如果未能解决你的问题,请参考以下文章

从表单中的字段取值到其他表中的新记录

通过机器学习从网页中提取信息

从 PDF 表单中提取 PDF 表单字段名称

从mysql中提取数据并在javascript中使用它们

从登录接口的响应结果里提取token

使用 cvtColor 转换单个 BGR 颜色并使用结果从图像中提取该颜色