PHP在编辑的表单上的下拉列表中选择更新内容

我正在设计一个涉及下拉列表的表单。 我想通过更改表单中变量的值来编辑表单。 我已经从mysql数据库中检索了所有的值,但是当我单击提交按钮而不更改下拉列表中的值时。 该值将被设置为空。

if(isset($_POST['update'])){

    $update_id = $_GET['edit_form'];
    $post_title1 =  $_POST['title'];
    $post_date1 = date("Y-m-d");
    $post_author1 = $_POST['author'];
    $post_keywords1 = $_POST['keywords'];

    $post_type1 = $_POST['category']; // This is the content I want to update but was               set to null, the rest is fine.

    $post_content1 = $_POST['content'];
    $post_image1 = $_FILES['image']['name'];
    $image_tmp = $_FILES['image']['tmp_name'];
}}

这是我的下拉列表:

<html>
<select name="category" class="err">`enter code here`
<option value=""><?php echo $post_type;?></option>
<option value="Class">Class</option>
<option value="Facilities">Facilities</option>
<option value="Services">Services</option>
</select>

我想要的是,当我单击提交按钮而不更改帖子的内容时, $post_type1将不会设置为空,而是保留其来自数据库的原始值。

谢谢,希望我明确表达了我的问题:)

以下是构建数据库查询的代码:

$post_image1 = $_FILES['image']['name'];
move_uploaded_file($image_tmp,"../images/$post_image1");
$update_query = "UPDATE post SET post_title='$post_title1', post_date='$post_date1',       post_author='$post_author1', post_image='$post_image1', post_keywords='$post_keywords1',post_type='$post_type1',
post_content='$post_content1' WHERE post_id ='$update_id'";

在HTML中,您应该为下拉列表设置默认值。

你用选项编写一个select元素。 当前数据库值的选项元素应该具有布尔selected属性集。

我如何设置HTML <select>元素的默认值?

<select name="category" id="category">
    <option></option>
    <option></option>
    <option selected="selected">

    </option>
    <option></option>
</select>

这种方式$ post_type1将保存选定的值,如果你点击提交而不修改表单。

现在的图像。 你必须测试值来构建正确的mySQL查询:

$update_query = "UPDATE post SET post_title='$post_title1', post_date='$post_date1', post_author='$post_author1'";
$post_image1 = isset($_FILES['image']) ? $_FILES['image']['name'] : false;
if($post_image1 !== false){
    if(move_uploaded_file($image_tmp,"../images/$post_image1")){
        //file successfully moved
        $update_query .= " , post_image='$post_image1'";
    }
}
$update_query .= ", post_keywords='$post_keywords1',post_type='$post_type1',
post_content='$post_content1' WHERE post_id ='$update_id'";

你了解它的要点!?


最好的方法是将下拉菜单的默认值设置为-1 .eg

HTML

<select name="category">

    <option id="-1">Please Select</option>
    <option id="1">Category 1</option>
    <option id="2">Category 2</option>

</select>

PHP

<?php

$post_type1 = ( 0 < ( int ) $_POST[ 'category' ] ) ? $_POST[ 'category' ] : null;

编辑:对不起,误解了这个问题

这可能更多你想要的:

PHP

<?php

$mysqli = new mysqli( "localhost", "xxx", "xxx", "xxx" );

$query = "SELECT * FROM xxx";

$options = array();

$category = ( int ) $_POST[ 'category' ];

$query = $mysqli->query( $query );

if( FALSE !== $query )
{
    while( $row = $mysliResults->fetch_assoc() )
    {
        $selected = "";

        if( $category === ( int ) $row['id'] )
            $selected = " selected="selected"";

        $options []= "<option id="{$row['id']}"{$selected}>{$row['name']}</option>":
    }
}

echo "<select name="category">", implode( "nt", $options ), "</select>";

希望有所帮助

链接地址: http://www.djcxy.com/p/88087.html

上一篇: PHP Update content chosen in a drop down list in a form on edit

下一篇: How to set "all values" as default in a multiple select?