簡體   English   中英

PHP 不會發布值表

[英]PHP Won't Post Table of Values

我有一個要發布的 HTML 值表。 它看起來像這樣:

值表

用戶選擇所有相關團隊后,我想將其保存到一個表單中,將所有行組合成這樣的表單:

PHP:

$numRows = 1;
$startMatchNum = 1;
if(isset($_GET['num'])) {
    $numRows = $_GET["num"];
    $startMatchNum = $_GET["start"];
}

JavaScript:

                     function getSelectionValue(rowNum, columnNum) {
                        document.cookie = "rowNum=" + rowNum;
                        //FOR EXTERNAL PHP FILE
                        //window.location = "http://example.com/file.php";
                        var id =
                            <?php
                            $index = 0;
                            $row = 0;
                            if ( ! empty( $_COOKIE['rowNum'] ) ) {
                                $row = $_COOKIE['rowNum'];
                            }
                            echo '"'.$values[$index].$row.'"';
                            ?>;
                        var e = document.getElementById(id);
                        var selectedValue = e.options[e.selectedIndex].value;
                    }

                    function postRefreshPage() {
                        var theForm, newInput1, newInput2, newInput3, newInput4, newInput5, newInput6;
                        var rows = <?php echo $numRows; ?>;
                        var nums1 = new Array(rows);
                        // Start by creating a <form>
                        theForm = document.createElement('form');
                        theForm.action = 'addMatch.php';
                        theForm.method = 'post';
                        // Next create the <input>s in the form and give them names and values
                        newInput1 = document.createElement('input');
                        newInput1.type = 'hidden';
                        newInput1.name = 'blue1Team';
                        newInput1.value = "";
                        for(var i = 0;i < rows;i++) {
                            newInput1.value += getSelectionValue(i, 0);
                            if((i + 1) != rows) {
                                newInput1.value += "|";
                            }
                        }

                        newInput2 = document.createElement('input');
                        newInput2.type = 'hidden';
                        newInput2.name = 'blue2Team';
                        newInput2.value = "";
                        for(var i = 0;i < rows;i++) {
                            newInput2.value += getSelectionValue(i, 1);
                            if((i + 1) != rows) {
                                newInput2.value += "|";
                            }
                        }

                        newInput3 = document.createElement('input');
                        newInput3.type = 'hidden';
                        newInput3.name = 'blue3Team';
                        newInput3.value = "";
                        for(var i = 0;i < rows;i++) {
                            newInput3.value += getSelectionValue(i, 2);
                            if((i + 1) != rows) {
                                newInput3.value += "|";
                            }
                        }

                        newInput4 = document.createElement('input');
                        newInput4.type = 'hidden';
                        newInput4.name = 'red1Team';
                        newInput4.value = "";
                        for(var i = 0;i < rows;i++) {
                            newInput4.value += getSelectionValue(i, 3);
                            if((i + 1) != rows) {
                                newInput4.value += "|";
                            }
                        }

                        newInput5 = document.createElement('input');
                        newInput5.type = 'hidden';
                        newInput5.name = 'red2Team';
                        newInput5.value = "";
                        for(var i = 0;i < rows;i++) {
                            newInput5.value += getSelectionValue(i, 4);
                            if((i + 1) != rows) {
                                newInput5.value += "|";
                            }
                        }

                        newInput6 = document.createElement('input');
                        newInput6.type = 'hidden';
                        newInput6.name = 'red3Team';
                        newInput6.value = "";
                        for(var i = 0;i < rows;i++) {
                            newInput6.value += getSelectionValue(i, 5);
                            if((i + 1) != rows) {
                                newInput6.value += "|";
                            }
                        }
                        // Now put everything together...
                        theForm.appendChild(newInput1);
                        theForm.appendChild(newInput2);
                        theForm.appendChild(newInput3);
                        theForm.appendChild(newInput4);
                        theForm.appendChild(newInput5);
                        theForm.appendChild(newInput6);
                        // ...and it to the DOM...
                        document.getElementById('hidden_form_container').appendChild(theForm);
                        // ...and submit it
                        theForm.submit();
                        location.reload();
                     }

然后,在它刷新后,它運行這個 PHP 代碼:

        if($_POST) {
            $blueTeam1 = explode ("|", $_POST['blueTeam1']);
            $blueTeam2 = explode ("|", $_POST['blueTeam2']);
            $blueTeam3 = explode ("|", $_POST['blueTeam3']);
            $redTeam1 = explode ("|", $_POST['redTeam1']);
            $redTeam2 = explode ("|", $_POST['redTeam2']);
            $redTeam3 = explode ("|", $_POST['redTeam3']);
            for($i = 0;i < $numRows;$i++) {
                $matchNumber = $i + 1;
                $query = "INSERT INTO match_info (matchNumber, blueTeam1, blueTeam2, blueTeam3, redTeam1, redTeam2, redTeam3)
                                    VALUES ('$matchNumber','$blueTeam1[$i]','$blueTeam2[$i]','$blueTeam3[$i]','$redTeam1[$i]','$redTeam2[$i]','$redTeam3[$i]')";
                $mysqli->query($query);
            }
        }

但是,它似乎沒有提交。 任何幫助是極大的贊賞!

編輯:我發現了錯誤,但我不知道如何修復它。 在 Javascript 代碼中, getSelectionValue函數返回undefined ,但我不確定為什么。

您可以嘗試刪除

location.reload();

在 getSelectionValue() 函數中,因為您提交但同時重新加載了初始腳本。

我想到了。 這是各種各樣的問題。 首先,我的 PHP 代碼中的 ID 與 JavaScript 表中的 ID 不匹配。 其次,我使用 cookie 將 JavaScript 變量傳遞給 PHP 不起作用,所以我復制了我想要訪問的 PHP 數組並在 JavaScript 中再次設置它。 因此,函數getSelectionValue(rowNum, columnNum); 不需要訪問 PHP 代碼。 最后,我在數據庫中的表中沒有matchNumber列,因此整個過程失敗了。

感謝所有幫助過的人!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM