0

あなたが助けてくれることを願っています.貧弱なコーディングや何かを許してください.

とはいえ、私のプロジェクトの 1 つで、ページが読み込まれたときにデータベースからドロップダウンを正常に設定するこのコードがあります。

<select name="Region" id="Region">
    <option value="">-- Select Region --</option>
    <?php                     
       $region=$POST['Region'];    
       if ($region); {
            $regionquery = "SELECT DISTINCT REGION FROM Sales_Execs ";    
            $regionresult = mysql_query($regionquery);    
            while($row = mysql_fetch_array($regionresult)) {
                echo "<option value=\"".$row['REGION']."\">".$row['REGION']."</option>\n  ";
            }       
       }
     ?>
        <script type="text/javascript">
document.getElementById('Region').value = <?php echo json_encode(trim($_POST['Region']));?>;
        </script>
    </select>

現在取り組んでいる次のプロジェクトでは、同じことを行う必要があるため、上記のコードを修正してコピーし、新しいプロジェクトに配置しました。

<select name="Sales_Exec" id="Sales_Exec">    
<option value="">-- Select SE --</option>
<?php                     
   $salesexec=$POST['Sales_Exec'];    
   if ($salesexec);    
   {
       $salesexecquery = "SELECT DISTINCT Assigned FROM Data ";    
       $salesexecresult = mysql_query($salesexecquery);    
       while($row = mysql_fetch_array($salesexecresult))
       {
            echo "<option value=\"".$row['ASSIGNED']."\">".$row['ASSIGNED']."</option>\n  ";
        }       
    }
?>
<script type="text/javascript">
 document.getElementById('Sales_Exec').value = <?php echo json_encode(trim($_POST['Sales_Exec']));?>;
</script>

</select>

このコードの 2 番目のチャンクは機能しません...そして、すべてをコピーしてすべての必要な部分を修正したように見えるので、なぜうまくいかないのですか?

ありがとうございました!

4

1 に答える 1

0

使用しませんが、使用する必要があり$salesexecます$salesexec=$_POST['Sales_Exec'];( .$_POST$POST

データベースのフィールドはAssigned(最初の文字のみが大文字)、ASSIGNED設定されていないエコー (すべて大文字) です。

使用する

echo "<option value=\"".$row['Assigned']."\">".$row['Assigned']."</option>\n  ";

XSS の脆弱性に関しては、実際には JavaScript で値を設定する必要さえありませんPOST。ループ内を確認し、選択した値をオプションで直接設定します。

echo "<option value=\"".$row['Assigned']."\"";
if (isset($_POST['Sales_Exec']) && $_POST['Sales_Exec'] == $row['Assigned']) { 
    echo ' SELECTED';
}
echo ">".$row['Assigned']."</option>\n  ";
于 2012-10-01T15:33:25.887 に答える