代码点火器单选按钮表单的问题



我是 php 和可点火者的初学者,我对我在代码点火器中创建的调查投票表有问题。我不知道调查的创建者写了多少个答案,所以我必须编写一个动态页面,用户在其中看到的单选按钮与答案一样多。

控制器:

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生成,你应该看到你必须找到更多的"echo"命令。

<?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>

我们可以通过使用 HTML 中的大括号减少混淆 https://www.php.net/manual/en/control-structures.alternative-syntax.php

<?= 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>

最新更新