首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax [文件1] -> php [文件2] -> $_POST [文件1]

ajax [文件1] -> php [文件2] -> $_POST [文件1]
EN

Stack Overflow用户
提问于 2019-01-20 08:10:59
回答 1查看 32关注 0票数 0

我正在用HTML,Javascript和PHP构建一个预算应用程序。我的目标是让用户能够将数据从提供的表单添加到数据库中。我的' dashboard.php‘(包含表单)的顶部已经有一大堆php了,所以我不想在提交时运行dashboard.php,所以我创建了一个按钮来执行对不同php文件'addIncome.php’的AJAX调用。

我有两个不同的文件。

dashboard.php和addincome.php

dashboard.php包含我的表单以及运行AJAX调用的javascript。

addincome.php使用$_POST从dashboard.php中的表单中获取值并生成mysqli_query。但是,一开始什么都没有发生,所以我决定回显来自$_POST的返回值之一的值。最终得到了这个错误...

代码语言:javascript
复制
undefined index iName in addIncome.php
undefined index iAmount in addIncome.php

因此,从那时起,我想可能在默认情况下我无法访问dashboard.php,所以我包含了...

代码语言:javascript
复制
include('dashboard.php');

还是没什么区别。

我在这里真的陷入了停顿。有什么想法吗?

谢谢

表格..。

代码语言:javascript
复制
<form>
    <input type="text" name="iName" placeholder="income name">
    <input type="number" step="0.01" min="0" name="iAmount" placeholder="amount">
    <input type="date" name="iDate">
</form>

javascript..。

代码语言:javascript
复制
<script>
    $('.in-btn').click(function() {
        $.ajax({
            url: "addIncome.php",
            type: "POST",
            data: 'show=content',
            success: function(data) {
                $('.in-btn').html(data);    
            }
        });
        setTimeout(() => {
            // location.reload(); 
        }, 2000);
    });
</script>

php..。

代码语言:javascript
复制
<?php

    echo "adding...";

    require_once('connection.php');
    include('dashboard.php');

    $iUser = $_SESSION["username"];
    $iName = $_POST["iName"];
    $iAmount = $_POST["iAmount"];

    echo $iName;

    $sql = "INSERT INTO income (user, name, amount, date) VALUE ('pmanke', '$iName', '$iAmount','1/16/19')";
    mysqli_query($dbCon, $sql);

?>
EN

回答 1

Stack Overflow用户

发布于 2019-01-20 08:16:34

除了:show=content之外,您没有使用AJAX调用发送任何post数据。您想要发送表单数据。您可以使用以下命令检索表单数据:

代码语言:javascript
复制
$("#id-of-form").serialize()

这样,您的PHP代码就能够从POST数据中检索正确的值。

一种更通用的方法是创建一个带有提交按钮和操作的普通表单,并使用javascript捕获提交事件并进行AJAX调用:

HTML:

代码语言:javascript
复制
<form id="idForm" action="addIncome.php">
    <input type="text" name="iName" placeholder="income name">
    <input type="number" step="0.01" min="0" name="iAmount" placeholder="amount">
    <input type="date" name="iDate">
    <input type="submit" />
</form>

Javascript:

代码语言:javascript
复制
$("#idForm").submit(function(e) {
    var form = $(this);
    var url = form.attr('action');

    $.ajax({
           type: "POST",
           url: url,
           data: form.serialize(), // serializes the form's elements.
           success: function(data) {
               alert(data); // show response from the php script.
           }
     });

    e.preventDefault(); // avoid to execute the actual submit of the form.
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54272486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档