-5

スーパー管理者とレストランのオーナーの両方がレストランのプロフィールを更新できるレストラン関連のプロジェクトに取り組んでいます。レストランのオーナーと管理者は、ほとんどのフィールドが同じで、いくつかのフィールドが異なります。

私の問題は、いくつかの食品タイプからいくつかの食品タイプを選択している共通のフィールドが1つあるということです。チェックボックスの。管理者がチェックボックスのステータスを変更すると、レストランのオーナー セクションに完全に反映されます。ただし、レストランの所有者がチェックボックスのステータスを変更すると機能しますが、レストランの所有者がチェックボックスをオンにした場合にのみ、所有者がチェックボックスをオフにすると更新されません。所有者が食品タイプのステータスをチェック解除できないことを意味します。

レストランのオーナーがチェックボックスをオフにしたときではなく、チェックボックスをオンにしたときにのみ更新される理由がわかりません。スーパー管理者側ですべてが正しく機能しています。

この問題を解決する方法を教えてください。

チェックボックスのフェッチに使用しているコード、これは完全なコードではありません..チェックボックスのみ

<?php
$j=0;

  $query="SELECT * FROM cuisine ORDER BY name ASC";
  $rs=mysql_query($query);
  while($rs1=mysql_fetch_array($rs))
  {
   $qid=$rs1["id"];
   $qname=$rs1["name"];
   $j=$j+1;

  ?>
  <td width="200" class="style1"><input 
  <?php  $emprolequery="select count(id) as jj from restuarantcuisine where resid='$resid' and cuisineid='$qid' ";
         $emprolers=mysql_query($emprolequery) or die(mysql_error());
  while($emprolers1=mysql_fetch_array($emprolers))
  { 
  $yes=$emprolers1["jj"];
  }
  if($yes>0)
  {
  ?> checked="checked"
  <?php } ?>
  type="checkbox" name="chkq[]"  value="<?php echo $qid; ?>" /><?php echo $qname; ?> </td>
  <?php

     if($j%2==0 && $j!=0)
  {
  ?>
  </tr>
    <tr><td>&nbsp;</td></tr>
  <tr>
  <?php }
   }?>

以下のコードは、上記のコードから詳細を受け取るためのものです...

<?php
ob_start();
session_start();
include("admin/conn.php");
$resid=$_REQUEST['id'];
$txtname=ltrim($_REQUEST['txtname']);

$txtemail=ltrim($_REQUEST['txtemail']);

$txtwebsite=ltrim($_REQUEST['txtwebsite']);
$txtphone=ltrim($_REQUEST['txtphone']);
$txtcellphone=ltrim($_REQUEST['txtcellphone']);
$provider=ltrim($_REQUEST['provider']);
$restaurantemail=ltrim($_REQUEST['restaurantemail']);
$txtaddress=ltrim($_REQUEST['txtaddress']);
$txtcity=strtoupper($_REQUEST['txtcity']);
$txthours=ltrim($_REQUEST['txthours']);
$txtlogo=ltrim($_REQUEST['txtlogo']);
$txtspecialcode=ltrim($_REQUEST['txtspecialcode']);
$txtdescription=addslashes($_REQUEST['txtdescription']);
$rddelivery=ltrim($_REQUEST['rddelivery']);
$delivery_fee="0";
if($rddelivery=='Y')
    $delivery_fee=ltrim($_REQUEST['delivery_fee']);
$rdrescall=ltrim($_REQUEST['rdrescall']);
$txtmenu=ltrim($_REQUEST['txtmenu']);
$time1=ltrim($_REQUEST['time1']);
$time2=ltrim($_REQUEST['time2']);
$time3=ltrim($_REQUEST['time3']);
$time4=ltrim($_REQUEST['time4']);
$time5=ltrim($_REQUEST['time5']);
$time6=ltrim($_REQUEST['time6']);
$time7=ltrim($_REQUEST['time7']);

$time11=ltrim($_REQUEST['time11']);
$time22=ltrim($_REQUEST['time22']);
$time33=ltrim($_REQUEST['time33']);
$time44=ltrim($_REQUEST['time44']);
$time55=ltrim($_REQUEST['time55']);
$time66=ltrim($_REQUEST['time66']);
$time77=ltrim($_REQUEST['time77']);


if($_FILES['txtlogo']['name'])
{
$fileimage=$_FILES['txtlogo']['name'];

$ext=substr(strrchr($fileimage,'.'),1);
$rander=rand();
$logoimage=$rander.".".$ext;
$path="logo/".$logoimage;
copy($_FILES['txtlogo']['tmp_name'],$path);
$query="update restuarant set logo='$logoimage' where id='$resid'";
mysql_query($query);
}

if($_FILES['txtmenu']['name'])
{
$fileimage=$_FILES['txtmenu']['name'];

$ext=substr(strrchr($fileimage,'.'),1);
$rander=rand();
$menuimage=$rander.".".$ext;
$path="menu/".$menuimage;
copy($_FILES['txtmenu']['tmp_name'],$path);
$query="update restuarant set menu='$menuimage' where id='$resid'";
mysql_query($query);
}
$query="update  restuarant set name='$txtname',address='$txtaddress', phone='$txtphone',cellphone='$txtcellphone',provider='$provider',restaurantemail='$restaurantemail',email='$txtemail', website='$txtwebsite', city='$txtcity',
description='$txtdescription', delivery='$rddelivery',delivery_fee='$delivery_fee', resorcall='$rdrescall', time1='$time1', time2='$time2', time3='$time3', time4='$time4', time5='$time5', time6='$time6', time7='$time7', time11='$time11', time22='$time22', time33='$time33', time44='$time44', time55='$time55', time66='$time66', time77='$time77' where id='$resid'";
//die($query);
//echo $query;
mysql_query($query) or die(mysql_error());
$restuarantid=mysql_insert_id();
$box[]=$_REQUEST['chkq'];


foreach ($box as $key => $value)
{
foreach ($value as $key1 => $value1)
{

$rs = mysql_query("INSERT INTO `restuarantcuisine` ( `resid`, `cuisineid`) VALUES (  '$resid','$value1' );");
}
}
header("Location:restprofile_edit.php?flag=true");


?>

私はこのウェブサイトの元のコーダーではありません..これは私が更新していくつかの問題を修正している他の誰かのコードです...これに正しいアプローチを使用していない場合、必要に応じてチェックボックスのステータスを変更する方法スーパー管理セクションで。

4

2 に答える 2

0


たとえば、チェックボックスがゼロに設定されていない場合は、チェックボックスが投稿されているかどうかを確認する必要があります

$checkbox = ($_POST['checkbox']) ? $_POST['checkbox'] : 0;

ユーザーがチェックボックスをオンにしなかった場合、POST 配列を介して送信されなかったためです。

于 2013-10-28T11:43:51.007 に答える