在php中保留选择选项值

时间:2015-08-20 02:31:13

标签: php post

我无法弄清楚如何在提交后保留选择选项值。我查看了各种论坛和自助网站:

store drop down options in mysql database, PHP 1

http://www.tizag.com/mysqlTutorial/mysqlinsert.php

insert value of html select form into mysql database

Using $_POST to get select option value from HTML

然而,在选择dopwdown选项后刷新页面时,它无法保留最后选择的值:

选择PHP代码:

$dropdown = elgg_echo('<DIV align="left", >
                    <form method="post" action="Select.php">    
                    <select name="mycustomFile" >
                        <option>Select Value..</option>
                        <option value="A">a</option>
                        <option value="B">b</option>
                        <option value="C">c</option>
                        <option value="D">d</option>
                    </select>
                    <p><input type="submit" value="Submit"</p>
                    </form>
                </DIV>');

第二段代码:Select.php(我执行$ _POST [&#39;&#39;]行动)

<?php
/**
 * Override the ElggFile
 */
class FilePluginSelect extends ElggObject {
protected function  initializeAttributes() {
    parent::initializeAttributes();
    $this->attributes['customFile'] = "my_select";
}
public function __construct($guid = null) {
    parent::__construct($guid);
}
public function customFile(){

    //method to call on model to allow select option
    //To post select option into mysql database
    $selectOption =$_POST['mycustomFile'];
    if(isset($selectOption)){
        $sql = "INSERT INTO Entries (mycustomFile) VALUES (".$_POST['selectOption'].")";
    }else {  // User selected nothing
    echo 'No options selected!';
    }
}

}

有人可以帮忙告诉我出了什么问题。感谢

2 个答案:

答案 0 :(得分:0)

你做错了。您可能只应该使用Elgg数据模型并将您的值存储在元数据中,除非您非常有理由忽略框架并自行完成。

首先,不要费心扩展ElgObject,你完全错了,并不需要它。

要保留选择,您必须阅读值并使用所选属性标记标记。

您还需要更新保存文件的操作以包含新字段值。要将其保存到元数据,您只需要使用实体的EAV界面(您将在http://learn.elgg.org/en/1.12/tutorials/blog.html中找到示例)。你可以在你正在扩展的视图中阅读它

对于select元素本身,您应该使用现有的输入/下拉视图。它将为您节省一些样板代码。您也不需要添加标记,因为您应该扩展现有的表单视图。视图文档位于:http://learn.elgg.org/en/1.12/guides/views.html

我强烈建议您首先在Elgg文档中开始搜索。 Elgg确实有一些学习曲线,但您希望学习正确的方法,以便将来维护代码。

答案 1 :(得分:-1)

将mycustomFile设置为mycustomFile []。也不要在没有清除的情况下将任何内容发布到数据库中,这非常危险。

更新

用于获取选择表单值的php是正确的。您的脚本因其他原因无效。以下是检索选择字段数据的示例。

<?php
    if(isset($_POST['button']))
    {
        echo 'select value: ' . $_POST['something'];
    }
?>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
            <select name="something">
                <option value="a">some a</option>
                <option value="b">some b</option>
                <option value="c">some c</option>
            </select>
            <button name="button">
                click
            </button>
        </form>
    </body>
</html>