私は単純なブログプラットフォームを作成しようとしていますが、今のところ私のページにはそのリストがあります私のSQLデータベースと記事が公開されているかどうかを示す列もあります。問題は、これらのチェックボックスのすべてを、(チェックされた入力1の場合は0以外の)動作するブール値として書くことができないことです。PHPはチェックボックスを使ってデータベースの複数の値を変更するブール
<input type="checkbox" name="public[<?php echo $postID ?>]">
その後、あなたはこのPHPを使用することができます。私はそれがうまくいかないと思う部分は、それぞれがこのような名前にIDを持っているように、配列形式を使用して
<?php
if (isset($_POST['submit'])) {
try {
$stmt = $db->prepare('SELECT postID FROM blog_posts') ;
$idArray = $stmt->fetch();
for($i = $idArray; $i > 0; $i--){
if(document.getElementById($i).checked){
$public = 1;
} else {
$public = 0;
}
try {
$stmt = $db->prepare('UPDATE blog_posts SET public = :public WHERE postID = '$i) ;
$stmt->execute(array(
':public' => $public
));
}
}
}
?>The entire code can be found here on [Hastebin][1] Thanks in advance
'document.getElementById($ i)'それはどういう意味ですか?それはJavaScriptコードであり、PHPではありません! – FirstOne
フォームを使用している場合は、おそらく隠された入力に真偽値を追加するjavascriptスクリプトを実行する必要があります。 – Jojo01
ステートメントを準備してから、ステートメントを実行せずにフェッチしようとします。あなたの準備された文をうまく実行したなら、あなたのforループは '--'何を配列にしようとします。 PHP if条件にJavaScriptコードがあります。あなたはネストされたtryブロックを持っています。それらが私が見る主要な問題です。 –