Данные вставляются в данные при загрузке страницы - php jquery [duplicate]

Karimb спросил: 07 октября 2018 в 11:23 в: php

На этот вопрос уже есть ответ здесь:

  • How to prevent form resubmission when page is refreshed (F5 / CTRL+R) 19 ответов

Я работал над этим кодом и, очевидно, каждый раз, когда загружаю страницу, которую он вставляет данные в базу данных.

<!DOCTYPE html>
<?phpinclude_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> каждый раз, когда я нажимаю кнопку add. Он передает значения в <tr> в массив, а затем отправляет его в виде строки в <input> в html, чтобы иметь возможность прочитать его в php и вставить в базу данных. я не использовал ajax, так как код прост и понятен.

Спасибо

0 ответов