0

パットされたコンテンツから動的ページを作成する Web ページに検索フォームがあります。私はそれを機能させましたが、これらのフォームには別のフォームがあり、選択可能なデータもあります。sku、sku2、txtKeyword2 が設定されている場合にのみ非表示のフィールド行を表示したい。私がこれまでに試したことを以下に見つけてください。

<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME']?>">
  <table width="100%">
    <tr>
      <th><h3>Search    </h3>
            <div class="alert-box">Insert Text for alert box</div>
        <input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>" size="40">
        <?php if(isset($_GET['sku'])) echo '<input type="hidden" name="sku" value="'.$_GET['sku'].'">'?>
        <?php if(isset($_GET['sku2'])) echo '<input type="hidden" name="sku2" value="'.$_GET['sku2'].'">'?>
        <?php if(isset($_GET['txtKeyword2'])) echo '<input type="hidden" name="txtKeyword2" value="'.$_GET['txtKeyword2'].'">'?>
        <input class="alert button" type="submit" value="Search"></th>
    </tr>
  </table>
</form>

入力行が設定されていない場合、入力行を表示しないようにするだけです。私は正しくやっていると思いますが、PHPを学んでいるのでわかりません。

次のコードも試してみましたが、うまくいきましたが、次のURLが出力されました。

index.php?txtKeyword=giro%25skyline&sku=%09%09<input+type%3D

これが発生してはならないことはわかっていますが、ページは機能しますが、他の検索フォームにデータを入力すると、入力行の一部が URL に追加されます。これが私が試したコードです:

<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME']?>">
  <table width="100%">
    <tr>
      <th><h3>Search    </h3>
            <div class="alert-box">Insert text for the alert box</div>
        <input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>" size="40">
        <input type="hidden" name="sku" value="<?php if(isset($_GET['sku'])) echo ''.$_GET['sku'].'">'?>
        <input type="hidden" name="txtKeyword2" value="<?php if(isset($_GET['txtKeyword2'])) echo ''.$_GET['txtKeyword2'].'">'?>
        <input type="hidden" name="sku2" value="<?php if(isset($_GET['sku2'])) echo ''.$_GET['sku2'].'">'?>
        <input class="alert button" type="submit" value="Search"></th>
    </tr>
  </table>
</form>

何が起こっているのか、どうすれば修正できるのかを知りたいです。

ありがとうライアン

4

1 に答える 1