我无法弄清楚如何在提交后保留选择选项值。我查看了各种论坛和自助网站:
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!';
}
}
}
有人可以帮忙告诉我出了什么问题。感谢
答案 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>