php - 数据在页面加载时插入数据 - php jquery

标签 php jquery html

<分区>

我一直在研究这段代码,显然每次我加载页面时它都会将数据插入数据库。

<!DOCTYPE html>
<?php

include_once($_SERVER["DOCUMENT_ROOT"] .'/31783/functions.php');

$questions="";
$activityname="";
$myarray=array();

if($_SERVER["REQUEST_METHOD"] == "POST") {
    print_r($myarray);
    print_r($activityname);
    $questions = $_POST['myquestions'];
    $activityname = $_POST['activityname'];
    $myarray = array_filter(explode("|||", $questions));
    SqlRecord("INSERT INTO activity (name) VALUES ('$activityname')");
    foreach ($myarray as $value) {
        $connector = array();
        $connector = array_filter(explode("!!!", $value));
        $question = $connector[0];
        $answer = $connector[1];
        $activityid = SelectRecord("activity_id", "SELECT activity_id FROM activity WHERE name='$activityname'");
        SqlRecord("INSERT INTO question(activity_id,question,answer) VALUES (" . $activityid . ",'$question','$answer')");
    }
}
?>

<html lang="en">
<head>
    <meta charset="utf-8">
    <title>jQuery Add / Remove Table Rows</title>
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
    <style type="text/css">

        tr:hover{
            cursor: move;
        }

    </style>
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
    var htm='<tr>\n' +
        '            <td><textarea name="name" required></textarea></td>\n' +
        '            <td><button class="remove"></button></td>\n' +
        '<td><select id="myAnswer" name="myAnswer" class="form-control"><option value="1">True</option><option value="2">False</option></select></td>'+
        '        </tr>';
        $(function () {
            $('tbody').sortable();

            $('#addRow').on( "click", function(){
                $('tbody').append(htm);
            });

            $(document).on('click','.remove',function(){
                $(this).parents('tr').remove();
            });

            $('#getValues').on( "click", function(){

                var myValues="";
                var values=[];
                $('textarea[name="name"]').each(function(i,elem){
                    values.push({
                        question:$(elem).val(),
                        answer:""
                    });
                });

                $('select[name="myAnswer"').each(function(i,elem) {
                    values[i].answer=$(elem).val();
                });

                for (var j=0;j<values.length;j++) {
                    myValues=myValues+values[j].question+"!!!"+values[j].answer+"|||";
            }

                //console.log(myValues);
                $("#myquestions").val(myValues);
            });

        });


    </script>
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="container">

        <input type="text" id="activityname" name="activityname" required></br>
    <table>

        <tbody>
        <tr>
            <td><textarea name="name" required></textarea></td>
            <td><button class="remove"></button></td>
            <td><select name="myAnswer" class="form-control"><option value="1">True</option><option value="2">False</option></select></td>
        </tr>

        <tr>
            <td><textarea name="name" required></textarea></td>
            <td><button class="remove"></button></td>
            <td><select name="myAnswer" class="form-control"><option value="1">True</option><option value="2">False</option></select></td>
        </tr>
        </tbody>
    </table>

    <input id="getValues" type="submit" value="Submit"/>

    <input type="text" id="myquestions" name="myquestions">

    <button id="addRow">Add</button>
</div>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

</body>
</html>

我无法发现代码中的错误。 代码添加<tr>每次我按添加。它传输 <tr> 中的值到一个数组然后它将它作为一个字符串发送到一个<input>在 html 中,以便能够在 php 中读取它并将其插入数据库。我没有使用 ajax,因为代码简单明了。

谢谢

最佳答案

如果你更换

if($_SERVER["REQUEST_METHOD"] == "POST") {

对于

if(isset($_POST['myquestions']) && !empty($_POST['myquestions'])) {

它应该可以工作,我知道为什么你的 $_SERVER 验证不工作,抱歉

关于php - 数据在页面加载时插入数据 - php jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53093898/

相关文章:

javascript - 如何找出文档中最高的 z-index?

PHP 使用用户帐户保存以前的文件上传信息

php - 获取从 $.ajax POST 返回的多个值

php - 将列与数据数组进行比较

PHP 获取最大值。来自 MySql 的 1000 个条目

javascript - jQuery 获取对 div 中加载的对象的引用

Javascript 更改 window.location 并运行异步 ajax get

javascript - 如何在 jquery validate() 上显示警报

html - 横向方向上的绝对元素偏移

html - IE7 响应图像故障