0

異なる列の複数の値を更新するための非常に単純なスクリプトを作成しました。私の問題は、列の値を更新しようとすると正常に動作することですが、チェックボックスの場合、値が正しく挿入されません。

例のために。更新する行が7行あり、選択オプションで1、2、3チェックボックスを選択し、4 5を選択せず​​に6 7を選択し、更新時に1、2、3、4、5を選択し、 6 7 を未選択のままにします

ここにコードを貼り付けています

     <?php include("db.php");

          $id = $_GET['id'];
   $tDate2=$_GET['tDate2'];
 ?> <form method="POST" style="width:50%" action="updatemonthly.php"  >
  <table id="rounded-corner">


    <?php
    $conn=mysql_connect("localhost","root","root") or die(mysql_error());
    mysql_select_db("monthly_pmc_admin") or die(mysql_error()); 
     $result1 = mysql_query("SELECT * from project_details where id ='$id' ;");
     $row = mysql_fetch_assoc($result1);
     $pno=$row['Project_No'];
    $result = mysql_query("SELECT * from capex_phasing_data where Project_Number ='$pno' order by id ;");
     ?>
    <thead>
      <tr>
        <th colspan="6" scope="col" class="rounded-company">Edit/ Delete Capex Graph Values</th>
        <th scope="col" class="rounded-q1"> <?php echo $tProjNo ?></th>
        <th scope="col" class="rounded-q4"></th>
      </tr>
    </thead>
    <tfoot>
      <tr>
        <td colspan="7" class="rounded-foot-left" align="center"><input type="submit" name="submit" value="DELETE" id='myButton1' />
          <input type="submit" name="submit" value="UPDATE" id='myButton1' />
         <?php 
         echo 
          '<a href="../capex.php?id=' . $id . '&tDate2='.$tDate2.'"> Add New Capex Value</a>';
          ?></td>
        <td class="rounded-foot-right"></td>
      </tr>
       <tr>
            <td colspan="4" class="rounded-foot-left" align="center"> <?php 
            echo('<A hREF="http://10.26.162.84/graph1/default.aspx?id='.$pno .'&tDate2='. $tDate2. '" target="_blank"> View Graph </A>');?></td>
            <td class="rounded-foot-right"></td>
          </tr>
    </tfoot>
    <tr>
      <th align='center'> Select to <br/>
        Delete Record </th>
      <th >Month</th>
      <th>Planned Phasing </th>
      <th>Actual Phasing </th>
       <th>Select To Display Value in Graph</th>

    </tr>
    <?
    for($i=1;$i<=mysql_num_rows($result);$i++) {
    $row = mysql_fetch_assoc($result);
    ?>
    <tr>
      <td align='left' ><input  type="checkbox" name="chk[]"  value="<?=$row['id']?>" align='center' />
      </td>
      <td align='left'><input type="text" name="month[]" size="10" id="jj" value="<?php echo $row['Month'];?>"  />
      </td>
      <td align='center' ><input name="planman1[]"  size="50" type="text" id="rr" value="<?php echo $row['Planned_Phasing'];?>"  />
      </td>
      <td align='center' ><input name="planman2[]" type="text" size="8" id="r1r" value="<?php echo $row['Actual_Phasing'];?>"  />
      </td>

      <td align='center' ><input name="planman5[]" type="checkbox" id="r4r"  <? if($row['Select_project']==1) {echo 'checked';} ?>  />
      </td>

        <input  type="hidden" name="rowid[]"  value="<?=$row['id']?>" align='center' />
        <input type="hidden" name="ProjNo" value="<?php echo $id; ?>">
          <input type="hidden" name="tDate2" value="<?php echo $tDate2; ?>">
        <!--<input type="hidden" name="ProjNo" value="<?php echo $tProjNo; ?>">-->
      </td>
    </tr>
    <?php
     }
     ?>

更新クエリ

<?php
session_start();
require_once('dbclass/database.php');
$myClass=new database();
//echo $_POST['name'];
  $array=$_POST['rowid'];
  $month=$_POST['month'];
  $planman1=$_POST['planman1'];
  $planman2=$_POST['planman2'];
  $planman3=$_POST['planman3'];
  $planman4=$_POST['planman4'];
  $planman5=$_POST['planman5'];
  $actuanman=$_POST['actuanman'];
  $length=count($_POST['rowid']);
  $chk=$_POST['chk'];
  $projno=$_POST['ProjNo'];
  $tDate2=$_POST['tDate2'];

  if($_POST['submit']=='UPDATE'){


for($a=0;$a<$length;$a++){
    $rid=$array[$a];
   $array[$a];
   $month[$a];
   $planman1[$a];
   $planman2[$a];
   $planman3[$a];
   $planman4[$a];
   $planman5[$a];
   $ac= $actuanman[$a];

 if($ac=='on'){$ch=1;} else {$ch=0;}


 if($planman5[$a]=='on'){$planman5[$a]='1';} else {$planman5[$a]='0';}

 $sql="UPDATE  capex_phasing_data set   Month='".$month[$a]."',   Planned_Phasing='".$planman1[$a]."' , Actual_Phasing='".$planman2[$a]."',    Select_project='".$planman5[$a]."' where id='".$rid."'";

mysql_query($sql) or die(); 

header("location:#");
}

}
4

3 に答える 3

0

1つのプロパティに属するすべてのチェックボックスには、同じ名前の後に「[]」を付ける必要があります。

たとえば、趣味のチェックボックスを音楽、読書、サーフィンとして配置する場合は、すべて同じ名前、たとえば趣味[]や値を音楽、読書、サーフィンのようにする必要があります。

<input type='checkbox' name='hobbies[]' value='Music'>Music</input>
<input type='checkbox' name='hobbies[]' value='Reading'>Reading</input>
<input type='checkbox' name='hobbies[]' value='Surfing'>Surfing</input>

したがって、音楽とサーフィンをチェックすると、$ _POST['hobbies']のチェックボックスのそれぞれの値が表示されます。

$_POST['hobbies'] as array('Music','Surfing')

したがって、それに応じてデータベース値を管理できます。

于 2013-01-14T11:13:57.280 に答える
0

最終的に理解した後、私は自分の問題の解決策を見つけました。貴重な時間と助けをありがとう、lexとsujit

チェックボックスのフォームに変更があります

<td align='center' ><input name="planman2[]" type="text" size="8" id="r1r" value="<?php echo $row['Actual_Phasing'];?>"  />
  </td>

  <td align='center' ><input name="**planman5<?=$i?>**" type="checkbox" id="r4r"  <? if($row['Select_project']==1) {echo 'checked';} ?>  />
  </td>

そして更新スクリプトで

for($a=0;$a<$length;$a++){
$rid=$array[$a];
$array[$a];
$month[$a];
$planman1[$a];
$planman2[$a];
$planman3[$a];
$planman4[$a];
**$p=$a+1;
$p5= $_POST['planman5'.$p];
if($p5=='on'){$ch1=1;} else {$ch1=0;}**

今は完全に正常に動作しています...

あなたの助けと提案をありがとう

于 2013-01-26T16:05:59.310 に答える
0

複数の選択ボックスを持つフォームを送信すると、チェックボックスの名前のみが$_POST配列に含まれます。したがって、チェックボックスがオンになっているかどうかを知るには、 でその名前が出現するかどうかを確認する必要があります$_POST

于 2013-01-14T11:08:35.947 に答える