1

したがって、基本的に私がやりたいことは、選択したチェックリスト要素を取得し、それらの「名前」をデータベースに送信することです。ラジオでも同じことをやりたいと思っています。コードは次のとおりです。

<?php       
        $user_files_directory = 'uploads/unused_images/'.$_SESSION['user_id'].'/';

        if (file_exists($user_files_directory)) {

        $dir_handle = @opendir($user_files_directory); 

        while ($file = readdir($dir_handle)) { 

        if($file == "." || $file == ".." || $file == "index.php" ) 

        continue; 

            echo "
            <div id=\"image_container\">
                <div id=\"unused_images_selector\">
                    <img src=\"uploads/thumbs/unused_images/".$_SESSION['user_id']."/$file\" alt=\"Test\">
                </div>
                <div id=\"checkbox\">
                        <input type=\"checkbox\" name=\"$file\">
                </div>
            </div>
            "; 
        }
        // Close 
        closedir($dir_handle); 

        } else {
            echo    "<p>
                        You have not uploaded any images.
                    </p>";
        }
    ?>

これに関する投稿が存在します:

$file = $_POST['file'];

残りは次のとおりです。

function create_new_page($page_name, $album_name, $file, $file1, $file2) {
        $page_name = mysql_real_escape_string(htmlentities($page_name));
        mysql_query("INSERT INTO `pages` VALUES ('', '$album_name', '".$_SESSION['user_id']."', UNIX_TIMESTAMP(), '$page_name', '$file2', '$file3', '$file')");
        return mysql_insert_id();
    }

ラジオ/チェックリスト以外はすべて機能します。どんな助けも大歓迎です。コードが最善ではないかもしれないことは知っていますが、それは私があまり PHP をやったことがないためです。動作するコードが欲しいだけなので、ここの問題について今はあまり心配していません。そしてそこに。

追加: $file はページに配置されている画像の名前です (ユーザーが使用したい画像の選択領域です)。 MYSQL データベースですが、代わりに「配列」と書き込みます。

4

1 に答える 1

0

HTML フォームの動作と、それを PHP で抽出する方法を誤解しています。name属性を実際のファイル名 (「ファイル」ではない)に設定し、name で POST パラメータを抽出しようとしていますfile。これを行う方法は、チェックボックスに名前を付けfile[](ファイルの配列のように)、value属性をファイル名に設定することです。PHP コードは変更されない場合があります。

チェックボックスのコードを次のように変更します。

<div id=\"checkbox\">
        <input type=\"checkbox\" name=\"file[]\" value=\"$file\" />
</div>

あなたはすでに以下を持っているので:

$file = $_POST['file'];

$fileファイル名の配列が表示されます。その後、必要に応じてそのデータを処理できます。

編集: OPが質問を変更したため。

複数の画像名をデータベースに保存したいので、複数のINSERTステートメントを起動する必要があります。おそらく$file変数をループして、クエリを作成できます。

次の行で何かを使用します。

$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

foreach ($file as $filename) {
    $query = $mysqli->prepare("INSERT INTO tblImages vcImageName VALUES (?)");
    $query->bind_param("s", $filename);
    $query->execute();
    $query->bind_result($result);
    $query->fetch();
    $query->close();
}

$mysqli->close();
于 2012-12-16T08:23:51.423 に答える