1

このコードでは、table1にデータを含める方法が見つかりませんでした。table1のデータが消えた後にtable2が表示されたとき!! どうすればこれを修正できますか?

         <?php
$menucompare="";
if (isset($_POST["menucompare"]))
{
 $menucompare= $_POST['menucompare'];
 $table1 = '
                        <table id= "Table1" width="100%" border="1" cellspacing="0" cellpadding="0">
                                        <!--SW - You need a tr tag around these headers-->
                                        <th >Weeks</th>
                                        <th ><p></p></th>
                                        <th > More Details</th>


                                        <tr id="tr">

                                                <tr id= "tr " >
                                                   <td  >gggg</td>
                                                   <td >kkkkk</td>
                                                   <td >
                                                                        <form name ="dets" method="POST" action="">
                                                                                <input class = "showt" name ="wnumber" id ="wnumber" type="submit" value= "More Details" />
                                                                                <input type="hidden" name="data" value="wnumber" />

                                                                                   <noscript>
                                                                                <input type="submit" value="Submit"/>
                                                                                   </noscript>
                                                                        </form>
                                                                </td>
                                                </tr>
                                        </tr>
                                </table> ';
}
else if (isset($_POST["data"]))
{
        // put whatever db process you need somwhere in this if statement

         $table1 = '
                        <table id= "Table1" width="100%" border="1" cellspacing="0" cellpadding="0">
                                    <!--SW - You need a tr tag around these headers-->
                                    <th >Weeks</th>
                                    <th ><p></p></th>
                                    <th > More Details</th>


                                    <tr id="tr">

                                            <tr id= "tr " >
                                               <td  >gggg</td>
                                               <td >kkkkk</td>
                                               <td >
                                                                    <form name ="dets" method="POST" action="">
                                                                            <input class = "showt" name ="wnumber" id ="wnumber" type="submit" value= "More Details" />
                                                                            <input type="hidden" name="row_id" value="value of row id" />
                                                                            <input type="hidden" name="data" value="wnumber" />

                                                                               <noscript>
                                                                            <input type="submit" value="Submit"/>
                                                                               </noscript>
                                                                    </form>
                                                            </td>
                                            </tr>
                                    </tr>
                            </table> ';


        $table2 = '
                          <div id="Table2">
                                  <table width="100%" border="1"  cellspacing="0" cellpadding="0">
                                          <tr>
                                                  <th id="wekkNum"> wnumber</th>
                                                  <th>Your place</th>
                                                  <th>Your arr</th>
                                          </tr>

                                          <tr >
                                                  <td>hhhh</td>
                                                  <td>kkkk</td>
                                                  <td>jjjj</td>
                                          </tr>

                                  </table>
                          </div>             
                  ';                   
}
?>

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
        /*Start Functions*/
        function displayVals() {
                var singleValues = $("select option:selected").text();
                $("#hiddenselect").val(singleValues);
                $("p").html("Procent of : &nbsp &nbsp" + singleValues);
        }
        /*End functions*/

        /*Start Ready*/
        $(document).ready(function(){
                $("select").change(function() {
                        displayVals();
                });
        displayVals();

                $("select#menucompare").change(function() {
                        $("#aform").submit();  
                });
    });
        /*End Ready*/
</script>
<form id="aform" method="post">
        <select id="menucompare" name ="menucompare" size="1" onchange="submitaform()">
                <option selected='selected'>Select one</option>
                <option value="value1" <?php    if ($menucompare == "value1") { echo " selected='selected'"; } ?> >Text 1</option>
                <option value="value2" <?php   if ($menucompare == "value2") { echo " selected='selected'"; } ?> >Text 2</option>
                <option value="value3" <?php   if ($menucompare == "value3") { echo " selected='selected'"; } ?> >Text 3</option>
                <option value="value4" <?php    if ($menucompare == "value4") { echo " selected='selected'"; } ?> >Text 4</option>

        </select>
        <input type="hidden" name="hiddenselect" value="<?php echo $menucompare ;  ?>" />      
</form>
<?php
if (isset($table1))
{
        print $table1;
}
if (isset($table2))
{
        print $table2;
}
?>

これが私のコード全体です。これが修正されることを願っています。私はすべての投稿を調べましたが、同様の問題はありません。

4

2 に答える 2

3
/*Start Ready*/
$(document).ready(function(){
    $("select").change(function() { 
        displayVals(); 
    });
    displayVals();

このコードスニペットの2番目displayVals();は、ページが読み込まれるとすぐにトリガーされます。ページが読み込まれると、まだ何も選択されていないため、エラーの原因であると思われます。

インラインスタイルを使用しているため、table2はページの読み込みまたはページの更新(強制的なページの読み込み)では表示されません<div id="Table2" style="display:none;">。選択オプションが保持されるという期待に関する同様の問題...ページが更新されると、デフォルトの状態にリセットされるため、選択されたオプションはありません。

于 2012-05-04T17:40:20.920 に答える
1

$ _POST値は、フォーム送信直後のページでのみ使用できます。

複数のページでユーザー入力を維持する簡単な方法は、非表示のフォームフィールドとして渡すことです。

したがって、「dets」フォームに非表示のフォームフィールドを追加します。

<input type="hidden" name="menucompare" value="'. $menucompare.'" />

また、37行目の「else」を削除する必要があります

else if (isset($_POST["data"]))

if (isset($_POST["data"]))

これを試して

于 2012-05-07T19:31:23.167 に答える