javascript - HTML/PHP/JS/MYSQL -- 如何通过表单将相当大的 DIV 内容传递给 MySQL?

标签 javascript php mysql ajax forms

大家好!

我目前正在玩某种支架,页面如下所示: Bracket

目的是让用户能够在每对模拟整个季后赛中选出获胜者。一旦他进行了模拟,底部就会出现一个表格: enter image description here

我无法开始工作的是表单不仅要传递 Imie/Email 字段(这很容易),而且要传递整个括号以便我可以检查发送的括号并进行比较。

我听说 ajax 在这种情况下会有很大帮助,所以我根据我在网上找到的一些信息编写了这个脚本(我是 ajax 的新手):

$(document).ready(function() {

            $('form').submit(function(event) {

                            var data = {
                                'name'              : $('input[name=name]').val(),
                                'email'             : $('input[name=email]').val(),
                                'formularz'         : $('#formdiv').val()
                            };

                            $.ajax({
                                type        : 'POST',
                                url         : 'process.php',
                                data        : data,
                                dataType    : 'json',
                                encode          : true
                            })
                                .done(function(data) {

                                    console.log(data); 

                                });

                            event.preventDefault();
                        });

                    });

Process.php 如下所示:

<?php

$errors         = array();
$data           = array();

    if (empty($_POST['name']))
        $errors['name'] = 'Imie jest wymagane.';

    if (empty($_POST['email']))
        $errors['email'] = 'Email jest wymagany.';

    if (empty($_POST['formularz']))
        $errors['formularz'] = 'Uzupełnij formularz.';

    if ( ! empty($errors)) {

        $data['success'] = false;
        $data['errors']  = $errors;
    } else {

        var imie = data.name;
        alert(imie);

        $data['success'] = true;
        $data['message'] = 'Success!';
    }

    echo json_encode($data);

根据 ajax 代码,我假设我应该获取带有表单数据的 console.log,但没有日志。表单数据是否可能因为存储的大 div 而导致失败?

如有任何帮助,我们将不胜感激!

这是完整代码和 HTML 的链接:

html代码示例:

<div id="formdiv">
    <div class="col-cell">
        <div class="row" id="team1">
            <?php
                $team1 = "SELECT id, timestamp, teamname, teamtag FROM teams WHERE id = '1'";

                $result = mysqli_query($con, $team1);
                if (mysqli_num_rows($result) == 0) {
                        echo '<div class="team-block">';
                        echo '<img src="img/basketball.png"/>';
                        echo '<div class="team-tag">';
                        echo "<h2>---</h2>";
                        echo '</div></div>';
                }
                else
                {;
                    while(list($id, $timestamp, $teamname, $teamtag) = mysqli_fetch_row($result))
                    {
                        $idfromsql = "SELECT * FROM teams WHERE id = $id";
                        $sthi = $con->query($idfromsql);
                        $imgresult = mysqli_fetch_array($sthi);

                        echo '<div class="team-block">';
                        echo '<div id="team111"><img src="data:image/jpeg;base64,'.base64_encode( $imgresult['data'] ).'"/></div>';
                        echo '<div class="team-tag">';
                        echo "<h2>$teamtag</h2>";
                        echo '</div></div>';

                    }

                };
                ?>
            <div class="numleft">1</div>
        </div>
        <div class="row" id="team2">
            <?php
                $team2 = "SELECT id, timestamp, teamname, teamtag FROM teams WHERE id = '2'";

                $result = mysqli_query($con, $team2);
                if (mysqli_num_rows($result) == 0) {
                        echo '<div class="team-block">';
                        echo '<img src="img/basketball.png"/>';
                        echo '<div class="team-tag">';
                        echo "<h2>---</h2>";
                        echo '</div></div>';
                }
                else
                {;
                    while(list($id, $timestamp, $teamname, $teamtag) = mysqli_fetch_row($result))
                    {
                        $idfromsql = "SELECT * FROM teams WHERE id = $id";
                        $sthi = $con->query($idfromsql);
                        $imgresult = mysqli_fetch_array($sthi);

                        echo '<div class="team-block" onclick="adv1();">';
                        echo '<div id="team211"><img src="data:image/jpeg;base64,'.base64_encode( $imgresult['data'] ).'"/></div>';


                        echo '<div class="team-tag">';
                        echo "<h2>$teamtag</h2>";
                        echo '</div></div>';

                    }

                };
                ?>
        </div>
    </div>
</div>

最佳答案

var data = {
   'name'              : $('input[name=name]').val(),
   'email'             : $('input[name=email]').val(),
   'formularz'         : $('#formdiv').val()
};

formularz 是空的,因为 .val() 函数只对输入字段有效。 如果您确实要传输完整的 div,请使用 .html() 或 .text()。

更简单的方法,根据所做的解决方案使用隐藏的输入。

关于javascript - HTML/PHP/JS/MYSQL -- 如何通过表单将相当大的 DIV 内容传递给 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43350373/

相关文章:

mysql - ejabberd mod_archive_odbc 性能

javascript - 多个可拖动图表 d3.js

javascript - React 组件不会使用相同的 props 重新渲染,但子状态会发生变化

php - 匹配带星号的字符串

php - 测试数字是奇数还是偶数

mysql - 表情符号插入 MySQL

javascript - 通过 Javascript 连接到 Facebook API 时如何重新加载/刷新 facebook like 按钮

JavaScript 闭包 : uncaught reference

php - 如何在mysql中使用 ".="将mysql查询连接成单个查询

javascript - 使用 onClick 更新数据库(NewB)