0

私はこのコードを持っています。それは、データベースにデータを挿入することです。オートボックスと呼ばれる 2 つと、2 つ目のハウスボックスがあります。ドロップダウン リストから auto を選択すると、autobox tbody にドロップダウン リストとテキスト入力が表示されます。ハウスボックス付きサモ。私が達成しようとしているのは、オートボックスが表示され、ハウスボックスが非表示の場合、フォームに入力して送信すると、ハウスボックスはデータベースに挿入されません。私はこれについて明確に願っています

このコードをそのまま使用するのは安全ではありません: SQL INJECTION

  <script>
    function addSubject(){
   selectedSubject = document.getElementById('subcategory').value
   if (selectedSubject == 'auto'){
    document.getElementById('autobox').style.display = 'block';

}else if (selectedSubject == 'house'){
    document.getElementById('housebox').style.display = 'block';
   } 
   }
   </script>

   <?php    
   if(isset($_POST['upload'])){
   $title = $_POST['title'];
   $description = $_POST['description'];
   $price = $_POST['price'];
   $subcategory = $_POST['subcategory'];
   $mileage = $_POST['mileage'];
   $make = $_POST['make'];


   $query = "INSERT INTO classifieds (id, subcategory, title, description, mileage, 

   make, price, broom ) VALUES ('', $subcategory, '$title', '$description', 

   '$mileage', '$make', '$price', '$broom')";
    mysql_query($query) or die(mysql_error());

   } 
   ?>

   <form action="insert.php"  method="post" name="insert" enctype="multipart/form-

  data">

  <select name="subcategory" id="subcategory" onchange="addSubject()"  >
   <option value="">Select Manufacturer</option>
  <option value="auto">Auto</option>
  <option value="house">House</option>
  </select>
  <span class="style64">Title</span> 
      <input type="text" name="title" class="input"/>

  <table>
  <tbody class="autobox"  id="autobox" style="display: none;" >
  <tr>
   <td class="title">Enter mileage:</td>
  <td class="field">
  <input type="text" name="mileage" size="8" maxlength="7"  /></td>
   </tr>
  <tr>
  <td>
   <span>Select Manufacturer : </span>

  <select name="make">
  <option value="Ford">Ford</option>
  <option value="Chevrolet">Chevrolet</option>
  <option value="Audi">Audi</option>
      </select>

 </td>
 </tr>
 </tbody>

 <tbody class="housebox"  id="housebox" style="display: none;" >
 <tr>
 <td class="title">Enter Price:</td>
 <td class="field">
  <input type="text" name="price" size="8" maxlength="7"  /></td>
   </tr>
   <tr>
   <td>

  <select name="broom">
<option value="1b">1 broom</option>
<option value="2b">2 broom</option>
<option value="3b">3 broom</option>
      </select>

   </td>
   </tr>
  </tbody>
  </table>

   <textarea name="description" rows="5" class="input"></textarea>
   <input type="submit" name="upload" value="Continue" />
                    </form>

ありがとう

4

2 に答える 2

1

これを試して。これがあなたが望むものであることを願っています

コードはテストされていません

<script>
    function addSubject(){
   selectedSubject = document.getElementById('subcategory').value
   if (selectedSubject == 'auto'){
    document.getElementById('autobox').style.display = 'block';
     document.getElementById('housebox').style.display = 'none';
}else if (selectedSubject == 'house'){
    document.getElementById('housebox').style.display = 'block';
     document.getElementById('autobox').style.display = 'none';
   } 
   }
   </script>

   <?php    
   if(isset($_POST['upload'])){
   $title = $_POST['title'];
   $description = $_POST['description'];
   $price = $_POST['price'];
   $subcategory = $_POST['subcategory'];
   $mileage = $_POST['mileage'];
   $make = $_POST['make'];
    if($subcategory=='auto')
    {
               $query = "INSERT INTO classifieds (id, subcategory, title, description, mileage, make, price, broom ) VALUES ('', $subcategory, '$title', '$description', 

       '$mileage', '$make', '', '')";
    }
    else
    {
       $query = "INSERT INTO classifieds (id, subcategory, title, description, mileage, make, price, broom ) VALUES ('', $subcategory, '$title', '$description', 

       '', '', '$price', '$broom')";
    }
    mysql_query($query) or die(mysql_error());
   } 
   ?>

   <form action="insert.php"  method="post" name="insert" enctype="multipart/form-data">

  <select name="subcategory" id="subcategory" onchange="addSubject()"  >
   <option value="">Select Manufacturer</option>
  <option value="auto">Auto</option>
  <option value="house">House</option>
  </select>
  <span class="style64">Title</span> 
      <input type="text" name="title" class="input"/>

  <table>
  <tbody class="autobox"  id="autobox" style="display: none;" >
  <tr>
   <td class="title">Enter mileage:</td>
  <td class="field">
  <input type="text" name="mileage" size="8" maxlength="7"  /></td>
   </tr>
  <tr>
  <td>
   <span>Select Manufacturer : </span>

  <select name="make">
  <option value="Ford">Ford</option>
  <option value="Chevrolet">Chevrolet</option>
  <option value="Audi">Audi</option>
      </select>

 </td>
 </tr>
 </tbody>

 <tbody class="housebox"  id="housebox" style="display: none;" >
 <tr>
 <td class="title">Enter Price:</td>
 <td class="field">
  <input type="text" name="price" size="8" maxlength="7"  /></td>
   </tr>
   <tr>
   <td>

  <select name="broom">
<option value="1b">1 broom</option>
<option value="2b">2 broom</option>
<option value="3b">3 broom</option>
      </select>

   </td>
   </tr>
  </tbody>
  </table>

   <textarea name="description" rows="5" class="input"></textarea>
   <input type="submit" name="upload" value="Continue" />
                    </form>

そうでない場合は、これを教えてください。ありがとうございました

于 2012-05-26T05:43:39.483 に答える
0

少なくとも、それを機能させるために必要なものは次のとおりです。

関連するフィールドのみを挿入します。

 <?php    
 if(isset($_POST['upload'])){
    $title = $_POST['title'];
    $description = $_POST['description'];
    $price = $_POST['price'];
    $subcategory = $_POST['subcategory'];

    if ($subcategory == 'auto'){
      $mileage = $_POST['mileage'];
      $make = $_POST['make'];
      $query = "INSERT INTO classifieds (subcategory, title, description, mileage, make, price) VALUES ($subcategory, '$title', '$description', '$mileage', '$make', '$price')";
    } elseif ($subcategory == 'house') {
      $broom = $_POST['broom'];
      $query = "INSERT INTO classifieds (subcategory, title, description, broom, price) 
                VALUES ($subcategory, '$title', '$description', '$price')";
    }

    mysql_query($query) or die(mysql_error());
 } 
 ?>

非アクティブなフィールドを非表示にする:

<script>
function addSubject(){
  selectedSubject = document.getElementById('subcategory').value;
  if (selectedSubject == 'auto'){
    document.getElementById('autobox').style.display = 'block';
    document.getElementById('housebox').style.display = 'none';
  }else if (selectedSubject == 'house'){
    document.getElementById('housebox').style.display = 'block';
    document.getElementById('autobox').style.display = 'none';
  } 
}
</script>
于 2012-05-26T05:57:02.977 に答える