1

私は2つのチェックボックスを持っています

<form action="" method="post" enctype="multipart/form-data">
<input type="checkbox" name="file_type" value="1"> Filer<br />
<input type="checkbox" name="file_type" value="1"> Statistik
</form>

データベース テーブル das_custermer_files に 2 つの行があります。

行 1 = ファイル 行 2 = 統計

それらの 1 つをチェックして、値を行に入れる方法を教えてください。

私はこのコードを試してみました

if($_POST['file_type'] == 1){
            mysql_query("INSERT INTO das_custermer_files (url, das_file_categories_id, das_custermers_id, name) 
                         VALUE('$fileurl', 1, $user_custermers_id, '$name')"
                    ) or die(mysql_error());
            }

            elseif($_POST['statistik_type'] == 1){
                mysql_query("INSERT INTO das_custermer_files (url, das_custermer_upload_id, das_custermers_id, name) 
                         VALUE('$fileurl', 1, $user_custermers_id, '$name')"
                    ) or die(mysql_error());
            }
            else{
                echo "no choices";
            }

しかし、そのうちの 1 つだけをチェックすると、両方の行に値 1 が設定されます。

人々が理解してくれることを願っています。そうでない場合。聞く


私はそれをやった。

細かいコード:

html

<form action="" method="post" enctype="multipart/form-data">
    <input type="radio" name="file_type" value="1"> Filer<br />
    <input type="radio" name="file_type" value="2"> Statistik
</form>

PHP

$field = false;

            switch($_POST['file_type'])
            {
                case 1:
                    $field = 'das_file_categories_id'; 
                break;
                case 2:
                    $field = 'das_custermer_upload_id'; 
                break;
                default:
                $field = false;
            }
            if($field)
            {
               mysql_query("INSERT INTO das_custermer_files (url, $field, das_custermers_id, name) 
                         VALUE('$fileurl', 1, $user_custermers_id, '$name')"
                    ) or die(mysql_error());
            }
4

7 に答える 7

1

HTMLコード:

<form action="test.php" method = 'post'>
<input type="checkbox" name="file_type[]" value="1"> Filer<br />
<input type="checkbox" name="file_type[]" value="2"> Statistik
<input type="submit" value="submit" />

チェックボックスには、配列 $_POST['file_type'] にその値が含まれ、次のようにその値を db に挿入できます:-

if(isset($_POST['file_type'])){
 foreach($_POST['file_type'] as $keys)
   {     
     mysql_query("INSERT INTO das_custermer_files (url, das_file_categories_id,     das_custermers_id, name) 
                 VALUE('$fileurl', $keys, $user_custermers_id, '$name')"
            ) or die(mysql_error());
    }
 }
    else if(isset($_POST['statistik_type'])){
        mysql_query("INSERT INTO das_custermer_files (url, das_custermer_upload_id, das_custermers_id, name) 
                 VALUE('$fileurl', 1, $user_custermers_id, '$name')"
            ) or die(mysql_error());
    }
    else{
        echo "no choices";
    }

これはおそらくあなたの要件...

于 2013-05-08T11:54:32.963 に答える
0

するのを忘れていたのでしょう<form action = "..." method = "POST"> </form>

最初のステップでは、テストを行う必要があります。

print_r($_POST);

このテストで何が得られますか?最初のステップが正しければ(空の配列ではない)、終了できます。

if (isset($_POST['file_type'])) { 
   ... 
};

// OR use alternative
if ($_POST['file_type'] == 1) { 
   ... 
};
于 2013-05-08T11:30:23.157 に答える
0

これを試してください。うまくいくはずです。

 if(isset($_POST['file_type'])){
        mysql_query("INSERT INTO das_custermer_files (url, das_file_categories_id, das_custermers_id, name) 
                     VALUE('$fileurl', 1, $user_custermers_id, '$name')"
                ) or die(mysql_error());
        }

        else if(isset($_POST['statistik_type'])){
            mysql_query("INSERT INTO das_custermer_files (url, das_custermer_upload_id, das_custermers_id, name) 
                     VALUE('$fileurl', 1, $user_custermers_id, '$name')"
                ) or die(mysql_error());
        }
        else{
            echo "no choices";
        }
于 2013-05-08T11:23:14.357 に答える
0

あなたのアプローチは完全に間違っています。この構造に従う必要があります

<form action="test.php" method = 'post'>
    <input type="checkbox" name="file_type" value="1"> Filer<br />
    <input type="checkbox" name="file_type" value="2"> Statistik
    <input type="submit" value="submit" />
</form>

今phpで

$query  =   '';
if($_POST['file_type'] == 1){
    $query  =   "INSERT INTO das_custermer_files 
                (url, das_file_categories_id, das_custermers_id, name) 
                VALUE
                ('$fileurl', 1, $user_custermers_id, '$name')";
}else if($_POST['file_type'] == 2){
    $query  =   "INSERT INTO das_custermer_files 
                (url, das_custermer_upload_id, das_custermers_id, name) 
                VALUE
                ('$fileurl', 1, $user_custermers_id, '$name')";
}

mysqli_query($query);
于 2013-05-08T11:24:01.783 に答える