javascript - 复制相同的数据请求查询,但使用 JavaScript Ajax post

标签 javascript php mysql ajax

复制相同的数据请求查询,但使用 JavaScript Ajax post,以便在按下按钮时不会刷新页面,仅请求另一个页面并显示在页面的某个部分中。 我需要一些帮助将其更改为 ajax 帖子

我的代码

*<?php
if(isset($_POST['submit']))
{
$success = $_POST['success'];
$dates = $_POST['dates'];
$datee = $_POST['datee'];
/*** mysql hostname ***/
$hostname = 'localhost';
$dbname = '*******';
/*** mysql username ***/
$username = 'root';
/*** mysql password ***/
$password = '*******';
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
    $tablename = 'login_attempts';
    $sql = 'SHOW COLUMNS FROM `'.$tablename.'`';
    $fields = array();
    $csv = array();

    $stmt = $dbh->query($sql);      
    while($row = $stmt->fetch(PDO::FETCH_ASSOC))
    {
        array_push($fields, $row['Field']);
    }

    array_push($csv, $fields);
    $success = mysql_real_escape_string($success);  
    $sql = "SELECT * FROM $tablename WHERE success = '".$success."' AND attempted >='".$dates."' AND attempted <='".$datee."'";
    $stmt = $dbh->query($sql);
    $stmt->execute();

    $csv = array();

    while($row = $stmt->fetch(PDO::FETCH_NUM))
    {
        array_push($csv, $row);
    }

    $fp = fopen('file.csv', 'w');

    foreach ($csv as $row) {
        fputcsv($fp, $row);
    }

    fclose($fp);
    header("Content-type: application/csv");
    header("Content-Disposition: attachment; filename=export.csv");
    header("Pragma: no-cache");
    header("Expires: 0");
    readfile('file.csv');
    $dbh = null;
} catch(PDOException $e) {
    echo $e->getMessage();
}
     exit();}
?>
<html>
    <head>
        <title>csv with criteria</title>
    </head>
    <body>

        <form action="csv2.php" method="post"  enctype="multipart/form-data">
        Select data range
        <br>
        <input type="date" name="dates" id="dates"> Starting date
        <br>
        <input type="date" name="datee" id="datee"> Ending date
        <br>
        Select what data you'd like
        <br>
        <input type="radio" name="success" value="1" checked> Yes<br>
        <input type="radio" name="success" value="0"> No<br>
        <input type="submit" value="show" name="submit">
        <br>
    </form>
    </body>
</html>*

最佳答案

如果您想在表单提交上使用 AJAX 请求,您应该:

  1. 导入 jQuery 库:例如<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
  2. 创建一个新的 JavaScrpit 文件,您将在其中捕获表单提交事件、发送 jQuery 请求并分析响应,例如:

    $(document).ready(function(){
    $("#myForm").submit(function(e){
       e.preventDefault(); //stop sending the form
    
       //here you should validate your form
    
       //submit it via AJAX:
       $.ajax({
           url: "csv2.php",
           data: { dates: $("#dates").val(), datee: $("#datee").val(), $('input[name='success']:checked', '#myForm').val() }
       })
    })
    });
    

您可以使用 AJAX 对象的其他功能,例如成功或错误回调函数:jQuery.ajax() 。不要忘记将 ID 添加到您的表单中。

关于javascript - 复制相同的数据请求查询,但使用 JavaScript Ajax post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36246445/

相关文章:

php - 如何优化从 php 输入匹配多部分 rar 文件的算法

PHP 邮件 html 格式不起作用

javascript - 像轮盘一样滚动 div 内容

php - 被锁定在本地 wordpress 之外

mysql - 重命名 AWS Aurora 数据库中的列

python - 如果在更新之前进行插入,是否需要提交代码?

mysql - 如何从 sys .`statements_with_temp_tables` View 检索截断的查询?

Javascript - 根据 URL 显示测验问题

javascript - 当我在Vue JS中按下父组件上的按钮时,如何刷新子组件?

javascript - 返回 javascript 对象警报 "undefined"