2011-12-04 8 views
0

データベースのmysql文を実行するために、選択したチェックボックスの値をあるページから別のページに渡そうとしています。チェックボックスの値をあるページから別のページに渡すにはどうしたらいいですか?

HTMLを

<form method='POST' action='move_compaudit.php'> 
<input type='hidden' name='checkbox' value='0'/> 
<input type='checkbox' name='checkbox' value='1'/> 

PHP(このファイルと呼ばれるmove_compaudit.php)

<?php 
    include('include/dbConnection.php'); 
    $checkbox = isset($_POST['checkbox']) ? 'Set' : 'NotSet'; 
    //SQL statement 
    $query = "SELECT * FROM compaudit;"; 
    $results = mysqli_query($dbc,$query) or die('Error querying database'); 
    $row = mysqli_fetch_array($results); 
    $query1 = "DELETE FROM compaudit WHERE serial_no = $row[7] AND $checkbox = 'Set'";  
    //Execute prepared MySQL statement 
    //$results1 = mysqli_query($dbc,$query1) or die('Error querying database'); 
    print_r($query); 
    print_r($query1); 
?> 

がひどく印刷マイクエリ:私は、このたびの取得 これは私が持っているものですクリックの有無にかかわらず、クリックされません。

SELECT * FROM compaudit;DELETE FROM compaudit WHERE serial_no = 12345 AND Set = 'Set' 
+0

コンパイルテーブルに列を設定しますか? – mqsoh

答えて

1

そのままHTMLを保存する場合は、$ _POST ['checkbox']の実際の値が設定されているかどうかをチェックする必要があります。あなたの隠しフィールドは、チェックされなくても、$ _POSTは引き続き "checkbox"の値を取得することを保証します。

<?php 
include('include/dbConnection.php'); 
$checkbox = ($_POST['checkbox'] == '1') ? 'Set' : 'NotSet'; 
.... 
+0

ZOMG BANCHES! 空でした($ _ POST ['checkbox']);私は逃した – MrDrewskii

+0

@ user1055753問題はありません。これがあなたの質問に答えたならば、それを "受け入れる"ように気をつけてください:)。 (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work。) – Bryan

0

Set同じ名前の隠されたチェックボックスの前に宣言する場合は、 `

+0

clicked/notclickedを使用しても気にならない – MrDrewskii

0

でエスケープしなければならない:) MySQLではキーワードである、この変数はISSETのために永遠に真となります。

@GameBitのヒントを参照し、フィールドをバッククォートしてエスケープし、クエリに使用する前にすべての変数を引用/エスケープします。

+0

だから私は: $ checkbox = isset($ _ POST ['checkbox'])に変更しましたか? 'Clicked': 'NotClicked'; まだデフォルトになっています。 – MrDrewskii

関連する問題