0

ユーザーがビジネス情報を編集できる Web サイトを構築しています。カテゴリ用に 3 つ、サブカテゴリ用に 3 つの合計 6 つの選択があります。隠しフィールドを使用して、各カテゴリとサブカテゴリの以前の値を取得し、選択が設定されている場合は、選択/ドロップダウンの値を挿入します。これが私のコードです:MYSQL Updateの場合:

<? 
include('../config.php'); 
if (isset($_GET['id']) ) { 
   $id = (int) $_GET['id']; 
   if (isset($_POST['submitted'])) { 
       foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); }

       if(isset($_REQUEST['cselect1'])){
       $cselect1 = $_REQUEST['cselect1'];



       $query="SELECT cat FROM cat WHERE id='$cselect1'";
       $result = mysql_query ($query);
       while($catselect=mysql_fetch_array($result)){
      $catselect1 = $catselect['cat'];
       }
       } else {
       $catselect1 = $_REQUEST['beforecat1'];
       }
       if(isset($_REQUEST['cselect2'])){
       $cselect2 = $_REQUEST['cselect2'];

       $query="SELECT cat FROM cat WHERE id='$cselect2'";
       $result = mysql_query ($query);
       while($catselect=mysql_fetch_array($result)){
          $catselect2 = $catselect['cat'];
       }
       } else {
       $catselect2 = $_REQUEST['beforecat2'];
       }
       if(isset($_REQUEST['cselect3'])){
       $cselect1 = $_REQUEST['cselect3'];

       $query="SELECT cat FROM cat WHERE id='$cselect3'";
       $result = mysql_query ($query);
       while($catselect=mysql_fetch_array($result)){
       $catselect1 = $catselect['cat'];
       }
       } else {
       $catselect3 = $_REQUEST['beforecat3'];
       }

   $sql = "UPDATE `company` SET  `name` =  '{$_POST['name']}' ,  `phone` =  '{$_POST['phone']}' ,  `cat1` =  '$catselect1' ,  `cat2` =  '$catselect2' ,  `cat3` =  '$cselect3' ,  `zipcode` =  '{$_POST['zipcode']}' ,  `city` =  '{$_POST['city']}' ,  `address` =  '{$_POST['address']}' ,  `address2` =  '{$_POST['address2']}' ,  `website` =  '{$_POST['website']}' ,  `product1` =  '{$_POST['product1']}' ,  `product2` =  '{$_POST['product2']}' ,  `product3` =  '{$_POST['product3']}' ,  `product4` =  '{$_POST['product4']}' ,  `product5` =  '{$_POST['product5']}' ,  `product6` =  '{$_POST['product6']}' ,  `product7` =  '{$_POST['product7']}' ,  `subcat1` =  '{$_POST['sselect1']}' ,  `subcat2` =  '{$_POST['sselect2']}' ,  `subcat3` =  '{$_POST['sselect3']}'   WHERE `id` = '$id' "; 
   mysql_query($sql) or die(mysql_error());
   $sql = "UPDATE `company_secondary` SET  `company_description` =  '{$_POST['description']}' ,  `since` =  '{$_POST['since']}' ,  `smoking` =  '{$_POST['select3']}' ,  `delivery` =  '{$_POST['select5']}' ,  `alcohol` =  '{$_POST['select6']}' ,  `kids` =  '{$_POST['select1']}' ,  `wheelchair` =  '{$_POST['select2']}' ,  `twitter` =  '{$_POST['twitter']}' ,  `facebook` =  '{$_POST['facebook']}' ,  `youtube` =  '{$_POST['youtube']}' ,  `premium` =  '{$_POST['premium']}' ,  `creditcards` =  '{$_POST['select4']}' ,  `outdoor` =  '{$_POST['select7']}' ,  `featured` =  '{$_POST['featured']}' ,  `shortdesc` =  '{$_POST['shortdesc']}' WHERE company_id = '$id' "; 
   mysql_query($sql) or die(mysql_error());
   echo "Edited Row<br/>";
   echo "<a href='allbiz.php'>Back To Listing</a>"; 
  } 

  $row = mysql_fetch_array ( mysql_query("SELECT * FROM `company` WHERE `id` = '$id' "));

?>

ここに非表示の入力があるフォームがあります (その一部のみを投稿しました。必要に応じてさらに投稿できます!)

<form action='' method='POST'> 
    <p><b>Name:</b><br /><input type='text' name='name' value='<?= $row['name'] ?>' /> 
    <p><b>Phone:</b><br /><input type='text' name='phone' value='<?= stripslashes($row['phone']) ?>' />
    <?php
        $cat1 = stripslashes($row['cat1']);
        $cat2 = stripslashes($row['cat2']);
        $cat3 = stripslashes($row['cat3']);
        $subcat1 = stripslashes($row['subcat1']);
        $subcat2 = stripslashes($row['subcat2']);
        $subcat3 = stripslashes($row['subcat3']);
    ?>
    <input type='hidden' value='<?php echo $cat1;?> name='beforecat1'/>
    <input type='hidden' value='<?php echo $cat2;?> name='beforecat2'/>
    <input type='hidden' value='<?php echo $cat3;?> name='beforecat3'/>
    <input type='hidden' value='<?php echo $subcat1;?> name='beforesubcat1'/>
    <input type='hidden' value='<?php echo $subcat2;?> name='beforesubcat2'/>
    <input type='hidden' value='<?php echo $subcat3;?> name='beforesubcat3'/>
    <p><b>Cat1:</b><br />
   <?php
       $query="SELECT * FROM cat";
       $result = mysql_query ($query);
       echo"<select name='cselect1' id='cat1'><option value='0'>Please Select A Category</option>";
       // printing the list box select command
       while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
            echo "<option value=\"".htmlspecialchars($catinfo['number'])."\">".$catinfo['cat']."</option>";

       }
       echo"</select>";
   ?>
   <?php
       $query="SELECT * FROM subcat";
       $result = mysql_query ($query);
   echo"<select name='sselect1' id='subcat1'><option value=''>Sub Category</option>";
   echo $subcat1;
   echo"'>$sucat1</option>";
       // printing the list box select command
       while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
           echo "<option value='".htmlspecialchars($catinfo['subcat'])."' class='".$catinfo['catnumber']."'>".$catinfo['subcat']."</option>";
       }

       echo"</select>";
  ?>

  <p><b>Cat2:</b><br />
  <?php
      $query="SELECT * FROM cat";
      $result = mysql_query ($query);
  echo"<select name='cselect2' id='cat2'><option value='0'>Please Select A Category</option>";
      // printing the list box select command
      while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
          echo "<option value=\"".htmlspecialchars($catinfo['number'])."\">".$catinfo['cat']."</option>";

      }
     echo"</select>";
   ?>
   <?php
     $query="SELECT * FROM subcat";
     $result = mysql_query ($query);
 echo"<select name='sselect2' id='subcat2'><option value=''>Sub Category</option>";
 echo $subcat1;
 echo"'>$sucat1</option>";
     // printing the list box select command
     while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
         echo "<option value='".htmlspecialchars($catinfo['subcat'])."' class='".$catinfo['catnumber']."'>".$catinfo['subcat']."</option>";
     }

     echo"</select>";
  ?>
  <p><b>Cat3:</b><br />
  <?php
     $query="SELECT * FROM cat";
     $result = mysql_query ($query);
 echo"<select name='cselect3' id='cat3'><option value='0'>Please Select A Category</option>";
     // printing the list box select command
     while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
         echo "<option value=\"".htmlspecialchars($catinfo['number'])."\">".$catinfo['cat']."</option>";

     }
     echo"</select>";
  ?>
  <?php
     $query="SELECT * FROM subcat";
     $result = mysql_query ($query);
 echo"<select name='sselect3' id='subcat3'><option value=''>Sub Category</option>";
     // printing the list box select command
     while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
     echo "<option value='".htmlspecialchars($catinfo['subcat'])."' class='".$catinfo['catnumber']."'>".$catinfo['subcat']."</option>";
     }

     echo"</select>";
  ?>

私の希望は、ユーザーが Cat および Subcat の選択/ドロップダウンを変更すると、それが mysql クエリで更新されることです。それ以外の場合、そのままにしておくと、データベースから選択された非表示の入力が、前と同じように mysql テーブルで更新されます。選択/ドロップダウンに触れずにフォームを送信すると、猫とサブ猫が一掃されます。これを修正するにはどうすればよいですか?

助けてくれてありがとう!

4

1 に答える 1

0

Jqueryなど、フォームのクライアント側のソリューションを探すことで問題が解決すると思います。

于 2012-07-26T19:17:27.093 に答える