我已经解决了以下所有问题,但仍无法解决的以下问题。问题是我想将多个复选框的值存储到数据库中,存储在其中的一列一记录中。这是我正在使用的表单代码:
<label for="newsletter1">PRIMARIA:</label>
<input type="checkbox" name="field021[]" value="1" /> 1
<input type="checkbox" name="field021[]" value="2" /> 2
<input type="checkbox" name="field021[]" value="3" /> 3
对于PHP,我正在使用具有以下存储参数的类文件:
public function __construct( $data = array() ) {
if( isset( $data['field021'] ) ) $this->field021 = stripslashes( strip_tags( $data['field021'] ) );
public function storeFormValues( $params ) {
//store the parameters
$this->__construct( $params );
}
public function register() {
$correct = false;
try {
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "INSERT INTO users(field021) VALUES(:field021)";
$stmt = $con->prepare( $sql );
$stmt->bindValue( "field021", $this->field021, PDO::PARAM_STR );
$stmt->execute();
现在,什么都没有在单元字段021中的数据库中写入,我想要做的是能够在其中注册用逗号分隔的多个复选框。如果有人可以提供帮助,将不胜感激。谢谢
public function __construct( $data = array() ) {
if(isset($data['field021'])) {
// wrong: $data['field021'] is an array, so don't stripslashes() / strip_tags()
//$this->field021 = stripslashes( strip_tags( $data['field021'] ) );
$this->field021 = array();
foreach ($data['field021'] AS $key => $value) {
$this->field021[$key] = stripslashes(strip_tags($value));
}
// STRING ARRAY
// | | | |
// V V V V
$this->field021 = implode(', ', $this->field021);
} // end if
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句