在表单提交中增加PHP变量

时间:2019-03-05 14:24:03

标签: php sql-server

我正在尝试创建一个页面,用户可以在其中传递SQL-Server数据库表中的值。我已通过PHP连接到数据库,但是单击“下一步”按钮时无法增加f_counter变量。

<?php
require('db.php'); // Bring in the database connection
include("auth.php");  // Make sure the user is logged in to an account

$f_array = array(); // Create the array of values for the WHERE statement

$sel_query = "SELECT fiche
              FROM test.dbo.[F_Globale]
              ORDER BY f ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
    array_push($f_array, $sel_row['f']);
}


if(isset($_POST['new']) && $_POST['new']==1)
{
    $ficheCount ++;
    echo 'fail';
}else{
    $ficheCount = 0;
    echo 'pass';
}

$sel_query = "SELECT *
              FROM test_2018.dbo.[F_Globale]
              WHERE f = ".$f_array[$fCount]."
              ORDER BY fiche ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
?>

我的表格只是一个简单的按钮。 html在输入中引用了来自数据库的值(未显示),但是,这些值仅在我第一次单击next按钮时更新。

<form name="page_form" method="post" action="" enctype="multipart/form-data">
    <input type="hidden" name="new" value="1" />

    <td rowspan="2">    
        <button name="next" id="next" value="next" style="font-size: 20px;"><i class="fa fa-angle-right"></i></button>
    </td>
</form>
<script>
$(document).ready(function(){
    $("#page_form button").click(function (ev) {
        ev.preventDefault()
        if ($(this).attr("value") == "next") {
            $("#page_form").submit();
        }
    });
});
</script>

任何人都可以看到我在做什么错。好像我的$ ficheCount变量在每次页面加载时都在重置,但是我已经检查了所有代码,并且只有在未设置$ _POST ['new']或$ joe <> 0时,它才会设置为0。添加了回声(失败和通过),似乎该值不应该被重置。

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

如@WillardSolutions所建议的那样,将代码转换为包含供主题计数的会话变量,从而修复了页面。

session_start();

$fiche_array = array();


$sel_query = "SELECT f
              FROM test.dbo.[F_Globale]
              ORDER BY fiche ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
    array_push($fiche_array, $sel_row['f']);
 }

if(isset($_POST['new']) && $_POST['new']==1)
{
    $_SESSION['ficheCount'] ++;
    echo 'fail';
}else{
    $_SESSION['ficheCount'] = 0;
    echo 'pass';
}

$sel_query = "SELECT *
              FROM test.dbo.[F_Globale]
              WHERE fiche = ".$fiche_array[$_SESSION['ficheCount']]."
              ORDER BY f ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {