1

我有两个复选框

<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 上有两行。

第 1 行 = 文件 第 2 行 = 统计

我如何检查其中一个并将值放入我的行中。

我试过这个代码

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。

希望人们理解。如果不。问


我已经做了。

精细代码:

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

你的check_box名字应该不同。你的也一样。

<input type="checkbox" name="file_type" value="1"> Filer<br />
<input type="checkbox" name="file_type" value="1"> Statistik
于 2013-05-08T11:44:59.137 回答
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 回答
1

我的方法是这样的:

我会使用radio按钮来确保选择了一种类型。

表格位:

    <input type="radio" name="file_type" value="0" checked="checked"> None<br />
    <input type="radio" name="file_type" value="1"> Filer<br />
    <input type="radio" name="file_type" value="2"> Statistik

PHP 位:

$field = false;

 // set the field name based on the file type selected in the form
switch($_POST['file_type'])
{
    case 1:
        $field = '`das_file_categories_id`';
    break;
    case 2:
        $field = '`das_custermer_upload_id`'; 
    break;
    default:
    $field = false;
}

// if a field has been set ( i.e file_type != 0 ) then build and run the query
if($field)
{

    $query  =   "INSERT INTO `das_custermer_files` (`url`, " . $field . ", `das_custermers_id`, `name`) ";
    $query .=   "VALUES ('" . $fileurl . "', 1, " . $user_custermers_id . ", '" . $name . "')";
    mysql_query($query);
    echo "Inserting to db: " . $query;
} else {
    echo "No field set: ";
    print_r($_POST);
}

值得注意的事情

  • 您使用mysql_query的是过时的,请参见此处: http: //php.net/manual/en/function.mysql-query.php
  • 即使您使用$fileurl, $user_custermers_id$name我也看不到这些被设置,所以我假设它们被设置在文件中更高的位置
于 2013-05-08T11:36:52.550 回答
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 回答
0

单击复选框不会更改value属性,但会在圆顶中添加“已选中”,如下所示:

<input type="checkbox" name="file_type" value="1" checked> Filer<br />

所以复选框的提交值将永远保持在“1”

编辑

当你用字符串替换值时,你可以在 php.ini 中检查它。

HTML

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

PHP

if($_POST['file_type'] == "Filer"){
            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['file_type'] == "Statistik"){
                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:35:04.677 回答