RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1443620
Accepted
Awake
Awake
Asked:2022-08-29 03:38:08 +0000 UTC2022-08-29 03:38:08 +0000 UTC 2022-08-29 03:38:08 +0000 UTC

如何将数据从表单发送到服务器?

  • 772

更准确地说,问题甚至不是如何发送,而是为什么不发送给我。

简而言之:有一个带有表单的弹出窗口:

(HTML)
<div class="popup__form">
     <form action="" class="form__popup__window" id="form_popup_send" autocomplete="off">
          <input type="text" name="experiment_num" placeholder="Exp. Number" required/>
          <input type="text" name="creature_name" class="creature-name" placeholder="Creature name" required/>
          <input type="text" name="description_expirement" class="about-exp" placeholder="About experiment:" required/>
          <input type="text" name="description_creature" class="about-exp" placeholder="About creature:" required/>
          <input type="number" name="upload" class="upload" placeholder="upload?" min="0" max="1" required/>
          <button class="btn btn-outline-danger" id="form_sub">CREATE</button>
     </form>
<div id="err-cons"></div>
</div>

输入所有输入时,“CREATE”按钮被戳,从逻辑上讲,魔术(ajax)应该出现在 JS 文件中,并且使用 JQuery,从输入中获取所有信息并将其扔到服务器上。

JS文件:

$('#add_doc').click(function() { //Это я делаю для попапа(на кнопку показываться). Не важно
    document.getElementById('popup').className += " visibill";
})

$(document).ready(function() { //То, что волнует.
    $('#form_sub').submit(function() {
        $.ajax({
            type: "POST",
            url: "http://documentation/documentsoneserver",
            data: $('#form_popup_send').serialize()
        }).done(function(response) {
            console.log(response);
        });
        return false;
    });
});

$('.popup__close').click(function() { //Это попап скрывает. Не важно
    document.getElementById('popup').classList.remove("visibill");
})

问题是它不滚动。我在 siteController 中创建了一个变量,我试图转储它,但它返回 NULL。

PHP 文件

public function actionDocumentsoneserver() {
        \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

        $data = Yii::$app->request->post();
        $data = $data['data'];

        var_dump($data);
        return;
}

我知道我不是最细心的人,所以如果你想通过找到一个缺少的分号来覆盖我 3 层楼,那么我理解。

PS:还要注意我使用了另一种形式的 AJAX 提交。

再次是 JS 文件和另一个提交表单:

let formSub = document.getElementById('form_sub');

formSub.addEventListener('click', function(){
    $.post('/documentsoneserver',
    {data: $('.form__popup__window').serialize()},
    function(result) {
        console.log($('.form__popup__window').serialize());
    $('#form_sub').submit(function (e) {
        e.preventDefault(); //Почему-то по нажатию кнопки "CREATE", форма перезагружает страницу. Вроде эта функция должна была это исправить, но, видимо, не судьба.
    });
    });
}) 
javascript
  • 1 1 个回答
  • 40 Views

1 个回答

  • Voted
  1. Best Answer
    Алексей Шиманский
    2022-08-30T14:33:00Z2022-08-30T14:33:00Z

    这里的问题很简单,而且有点看不见。

    此刻,当按钮被点击时,并没有发生ajax请求,而是提交了表单并重新加载了页面。此外,由于 表单中没有指定方法,默认方法是GET. 结果,POST服务器上的方法中没有任何内容是合乎逻辑的。


    为什么提交而不是ajax?更多关于底部的内容。


    要更正错误,您需要更正js中的行并改为编写

    $('#form_sub').submit(function() {
    

    像这样:

    $('#form_popup_send').submit(function() {
    

    因为 必须指定表单的 ID,因为 该事件submit适用于表单,现在它挂在按钮上,没有任何反应。

    当然,您可以制作一个带有类型的按钮,button然后这样做:

    $('#form_sub').click(function() {
    

    然后它也会起作用。

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5