php - codeigniter 单选按钮表单的问题
问题描述
我是 php 和 codeigniteran 的初学者我有一个关于我在 codeigniter 中创建的调查投票表格的问题。我不知道调查的创建者写了多少答案,所以我必须编写一个动态页面,用户看到的单选按钮与答案一样多。
控制器:
public function vote($frage_id){
if(!$this->ion_auth->logged_in()){
redirect('auth/login');
}
$antworten = $this->antwort_model->getbyFrageid($frage_id);
$frage = $this->fragen_model->get($frage_id);
foreach($antworten as $antwort){
$this->form_validation->set_rules('antworten',$antwort['inhalt']);
}
if($this->form_validation->run() === FALSE){
$data = array(
'frage' => $frage,
'antworten' => $antworten
);
$this->load->view('templates/header');
$this->load->view('antwort/vote', $data);
$this->load->view('templates/footer');
print_r($antworten);
}
else{
$antwort_id;
foreach($antworten as $antwort){
if($antwort['inhalt'] = $this->input->post('antworten')){
$antwort_id = $antwort['id'];
}
}
$user_id = $this->ion_auth->get_user_id();
$this->antwort_model->set($antwort_id,$user_id);
redirect('umfrage/display/'.$frage['umfrage_id']);
}
}
}
看法;
<?php echo validation_errors(); ?>
<h1><?php echo $frage['inhalt'];?></h1>
<?php echo form_open('antwort/vote/'.$frage['id']); ?>
<?php foreach($antworten as $antwort){ ?>
<label for="antworten" ><?php echo $antwort['inhalt'];?></label>
<input type="radio" name="antworten" value = "<?php $antwort['inhalt'];?>"<?=set_radio('antworten',$antwort['inhalt'])?> /><br />
<?php } ?>
<input type="submit" name="submit" value="Submit" />
</form>
由于某种原因,form_validation() 总是返回 false。
请帮忙
提前谢谢
解决方案
如果您在浏览器上查看您的 HTML 源代码以查看需要生成的 HTML,您应该看到您必须找到更多的“回显”命令。
<?php echo validation_errors(); ?>
<h1><?php echo $frage['inhalt'];?></h1>
<?php echo form_open('antwort/vote/'.$frage['id']); ?>
<?php foreach($antworten as $antwort){ ?>
<label for="<?php $antwort['inhalt'];?>" ><?php echo $antwort['inhalt'];?></label>
<input type="radio" name="<?php $antwort['inhalt'];?>" value = "<?php $antwort['inhalt'];?>" /><br />
<?php } ?>
<input type="submit" name="submit" value="Antwort abgeben" />
</form>
需要更多的回声语句,但它比使用更好<?=
(<?php echo
因为有些人忘记了回声......)
<?= validation_errors(); ?>
<h1><?= $frage['inhalt'];?></h1>
<?= form_open('antwort/vote/'.$frage['id']); ?>
<?php foreach($antworten as $antwort){ ?>
<label for="<?= $antwort['inhalt'];?>" ><?= $antwort['inhalt'];?></label>
<input type="radio" name="<?= $antwort['inhalt'];?>" value = "<?= $antwort['inhalt'];?>" /><br />
<?php } ?>
<input type="submit" name="submit" value="Antwort abgeben" />
</form>
我们可以通过使用https://www.php.net/manual/en/control-structures.alternative-syntax.php在 HTML 中减少花括号的混淆
<?= validation_errors(); ?>
<h1><?= $frage['inhalt'];?></h1>
<?= form_open('antwort/vote/'.$frage['id']); ?>
<?php foreach($antworten as $antwort): ?>
<label for="<?= $antwort['inhalt'];?>"><?= $antwort['inhalt'];?></label>
<input type="radio" name="<?= $antwort['inhalt'];?>" value = "<?= $antwort['inhalt'];?>"><br>
<?php endforeach; ?>
<input type="submit" name="submit" value="Antwort abgeben">
</form>
推荐阅读
- sql - 如果它们与父表具有相同的ID,如何获取所有子表数据
- ios - 从 UITableView 中删除行会导致部分标题问题?
- python - 使用 numpy 将数据从一个通道交换到另一个通道
- python - ezdxf 如何提取与块布局中的文本关联的标签
- sql-server - ADO.NET 查询未显示在 XEvents 中
- javascript - 如何防止 Google App Maker 应用超时
- powerbi - 需要一个平均总数,但有一个总和
- sockets - 网络不可用时未关闭绑定的 UDP 套接字
- c - 释放 BST 但仍然出现内存泄漏 C
- c# - Xamarin MasterDetail 页面更新到新页面