Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在html隐藏输入中传递更新的值_Php_Javascript - Fatal编程技术网

Php 在html隐藏输入中传递更新的值

Php 在html隐藏输入中传递更新的值,php,javascript,Php,Javascript,我正在做一个关于在线考试的项目,管理员可以在其中添加测试,之后它将显示在div中。在div中,它将显示所有选定测试的列表,因此,他可以通过简单地单击十字符号删除任何测试。因此,我陷入了这样一个过程:如果我删除了任何测试,然后我提交了一个表单,那么它会向我显示所有测试,包括删除的测试。以下是我的代码: <?php if(isset($_POST['addTest'])) { echo "<br>"; echo "SELECT

我正在做一个关于在线考试的项目,管理员可以在其中添加测试,之后它将显示在div中。在div中,它将显示所有选定测试的列表,因此,他可以通过简单地单击十字符号删除任何测试。因此,我陷入了这样一个过程:如果我删除了任何测试,然后我提交了一个表单,那么它会向我显示所有测试,包括删除的测试。以下是我的代码:

<?php  
    if(isset($_POST['addTest']))
    {  
        echo "<br>";
        echo "SELECTED TEST LIST";
        echo "<br>";
        echo '<div style="backfround:white;padding:5px;border:2px solid;overflow:scroll;height:100px;">';
        $fruitList = implode(', ', $_POST['jdb']);
        $jdStore = explode(',',$fruitList);
        $jdValueStore = ""; 

        for($i=0;$i<count($jdStore);$i++)
        {
            $testShowState = "select testId, testName from test where testId= '$jdStore[$i]'";
            $testShowQuery = mysql_query($testShowState);
            $testShowFetch = mysql_fetch_array($testShowQuery);

            echo  $jdValueStore[] =  "<div class='divClass'>

                                          <p>".$testShowFetch['testName']."</p>
                                          <img src='images/deletebttn.gif' alt='delete' class='deleteDiv' />
                                      </div>";
        }

        echo '</div>';
    } 

    $jdTotal = serialize($jdValueStore);
    $encoded = htmlentities($jdTotal);

?>
<input type="hidden" name="jdStoreValue" value="<?php echo $encoded; ?>">
<input type="submit" class="button add" value="Save" style="width:auto;" id="addSave" onclick="myAddSave()" name="myAddSave" >


您应该删除序列化代码

if(isset($_POST['addTest']))
{  
    echo "<br>";
    echo "SELECTED TEST LIST";
    echo "<br>";
    echo '<div style="backfround:white;padding:5px;border:2px solid;overflow:scroll;height:100px;">';
        $fruitList = implode(', ', $_POST['jdb']);
        $jdStore = explode(',',$fruitList);
        $jdValueStore = ""; 

        for($i=0;$i<count($jdStore);$i++)
        {      
            $testShowState = "select testId, testName from test where testId= '$jdStore[$i]'";
            $testShowQuery = mysql_query($testShowState);
            $testShowFetch = mysql_fetch_array($testShowQuery);
            echo '<input type="hidden" name="fruitList[]" value="'.$testShowFetch['testId'].'" />';
            echo  $jdValueStore[] =  "<div class='divClass'>

                <p>".$testShowFetch['testName']."</p>
                    <img src='images/deletebttn.gif' alt='delete' class='deleteDiv' />
                </div>";
         }

        echo '</div>';
} 
<input type="submit" class="button add" value="Save" style="width:auto;" id="addSave" onclick="myAddSave()" name="myAddSave" >
if(isset($\u POST['addTest']))
{  
回声“
”; 回显“选定测试列表”; 回声“
”; 回声'; $FROUTLIST=内爆(',',$_POST['jdb']); $jdStore=explode(“,”,$fruitList); $jdValueStore=“”;
对于($i=0;$i将jquery onclick事件绑定到交叉按钮,这将减少删除时的检查计数,并更新隐藏字段。

我能够理解的是,它在执行页面时获得了值,这就是为什么它显示所有测试的原因。那么,我如何才能仅获取管理员使用任何scrip未删除的测试t?您的代码需要
Tab
+
Shift
我以前可以使用jquery scirpt在页面中隐藏我的分区。问题是,当页面执行时,所有测试列表都存储在$jdTotal中,然后在编码后,我将其传递到隐藏的输入表单,因此即使我将删除列表,它也不会更新测试列表。@A在PHP代码中的第二个数组是您直接使用的
fruitList
数组。如果我删除serialize函数,那么我将无法在隐藏的输入字段中传递数组值,因为它将在使用for在另一页上获取数组时向我显示数组loop@ANerd我为传递hid添加了此代码
echo';
当我只想在另一个页面中获得测试列表时,通过结果列表[]有什么好处?
if(isset($_POST['addTest']))
{  
    echo "<br>";
    echo "SELECTED TEST LIST";
    echo "<br>";
    echo '<div style="backfround:white;padding:5px;border:2px solid;overflow:scroll;height:100px;">';
        $fruitList = implode(', ', $_POST['jdb']);
        $jdStore = explode(',',$fruitList);
        $jdValueStore = ""; 

        for($i=0;$i<count($jdStore);$i++)
        {      
            $testShowState = "select testId, testName from test where testId= '$jdStore[$i]'";
            $testShowQuery = mysql_query($testShowState);
            $testShowFetch = mysql_fetch_array($testShowQuery);
            echo '<input type="hidden" name="fruitList[]" value="'.$testShowFetch['testId'].'" />';
            echo  $jdValueStore[] =  "<div class='divClass'>

                <p>".$testShowFetch['testName']."</p>
                    <img src='images/deletebttn.gif' alt='delete' class='deleteDiv' />
                </div>";
         }

        echo '</div>';
} 
<input type="submit" class="button add" value="Save" style="width:auto;" id="addSave" onclick="myAddSave()" name="myAddSave" >