2017-06-10 14 views
1

Mysqliが復号化されているが、サーバーがMysqliにアンダースコアを付けることを許可していないことがわかっているが、現時点では問題ではない。それは0に更新されていません。チェックボックスがチェックされていないときにチェックボックスが保存されないPOST PHP

<?php 
@mysql_connect("localhost", "xxx", "xxx") or die(mysql_error()); 
@mysql_select_db("xxx") or die(mysql_error()); 
@mysql_query("SET NAMES utf8");  error_reporting(E_ALL); 
ini_set('display_errors', 1); 





$chk1 = $_POST['chk1']; 

foreach($chk1 as $i=>$s){ 
    if($s == TRUE) 
    { 
     echo $s, '<br/>'; 
     $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '1' WHERE cars_id='".$s."'"); 
    } else {  
     echo $s, '<br/>'; 
     $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '0' WHERE cars_id='".$s."'"); 
    } 
    } 

?>

*私はwhileループでそれを置く方法を見つけていない "ducpliate" の記事で

<form action="./pages/checkbox.php" method="post"> 
<section class="content" class="table details"> 
    <table class="dashboard"> 
     <tr class="top"> 
      <td width="40">#</td> 
      <td width="40"Show</td> 
      <td width="40">Photo</td> 
      <td width="80%"Name</td> 
     </tr> 
    <tbody id="the-list"> 
<? 
$result= mysql_query("SELECT * FROM cars"); 
$counter = 1; 
?> 
<?php 
while($row = mysql_fetch_array($result)){ 
     echo '<tr> 
      <td>' . $counter++ . '</td> 
      <td><input value="'.$row['cars_id'].'" id="chk1" name="chk1[]" type="checkbox"'; 
      if ($row['show'] == true){ 
       echo 'checked></td>'; 
       }else 
       { 
       echo 'unchecked></td>'; 
      } 
     echo '<td><img src="../xml/images/'.$row['cars_id'].'-1.JPG" width="120px"></td>';  
     echo "<td><h3> ", $row['brand']," " . $row['model'], " " . $row['type'], " &euro; " . $row[cars_id'], " </h3></td>"; 
     echo '</tr>'; 
} 
?> <input type="submit" name="Submit" value="Safe"> 
    </form> 

を追加し、これは同じ質問がどのように説明してください。

+0

を行う掲示かどうかを確認する 。 - ループ – Lightme

+0

私は本当にあなたが探している1つの質問が表示されていないので、重複したポストではっきりとしたawnserを見つけることができない場合、人々は質問をするのを恐れています。 – Lightme

答えて

1

チェックボックスをオフにすると投稿されません。 IDはあなたの配列に含まれていません。

投稿データを確認すると、チェックボックスがないことがわかります。


チェックボックスをオフにする最も良い方法は、上書きすることです。その確認されたときに

<form method="post"> 
 
    <input type="hidden" name="checkbox" value="0"> 
 
    <input type="checkbox" name="checkbox" value="1"> 
 
    <button type="submit">Check result</button> 
 
</form>

+0

あまりにも賢明ではない質問かもしれませんが、私も学んでいます。投稿データを確認するにはどうしたらいいですか? – Lightme

+0

ありがとう、(申し訳ありません私の投稿を編集したいstackoverflowのインターフェイスに慣れる必要があります)。しかし私の投稿が私のフォームがどこに編集されているのを見たら、どこに値が自動で来たら隠れた入力を置くのですか? – Lightme

+0

全体的な回答(チェックボックスをチェックしないと送信されない)は正しいですが、フォームのチェックボックスのリストを送信するのが最適な解決策ではありません。あなたは余分な仕事(別名爆発)をしなければならず、また、あなたがしてはならない情報のためにクライアントに頼っています。誰かが 'ids'入力の内容を変更するとどうなりますか?同じコンセプトに従いますが、フォームから許可されたチェックボックスのリストを取得しないでください。 PHPスクリプトでそのリストを簡単にハードコードすることもできます。 –

0

チェックボックスはデータのみを掲載します。それはあまりにもしばらくによって生成された私のフォームで隠しを置くところ私はその記事では表示されませんので、ノー

<?php 
    if(isset($_POST["chk1"])){ 
    // Run your sql code in here to avoid unwanted output 
// Set your check variable 
$chk1=$_POST["chk1"]; 
// Then your loop 
foreach($chk1 as $i=>$s){ 
    if($s == TRUE) 
    { 
     echo $s, '<br/>'; 
     $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '1' WHERE cars_id='".$s."'"); 
    } else {  
     echo $s, '<br/>'; 
     $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '0' WHERE cars_id='".$s."'"); 
    } 
    } 
    } 
    ?> 
関連する問題