【问题标题】:Radio button value not "checked" in edit form编辑表单中未“选中”单选按钮值
【发布时间】:2013-02-27 07:22:35
【问题描述】:

我有一个表格,每行都有选项编辑。当我单击编辑时,会弹出一个表单并显示填写了要编辑的数据的字段。但是未显示选定的单选按钮。
你能说出我的代码中缺少什么吗?就像我怎样才能让正确的单选按钮显示选中的值?

这是编辑表单:

<form action="edit_movie.php" method="post">
<input type="hidden" name="id" value="<?php echo $movie['id']; ?>" /> <br>
Title:<br> <input type="text" name="title" value="<?php echo $movie['title']; ?>" /> <br>
Release Year:<br> <input type="text" name="release_year" value="<?php echo $movie['release_year']; ?>" /> <br>
Director:<br> <input type="text" name="director" value="<?php echo $movie['director']; ?>" /> <br><br>
Select genre:
<br> <input type="radio" name="genre_id" value="1"<?php if($movie['genre'] == 1) { echo ' checked'; } ?> />Action<br>
<br> <input type="radio" name="genre_id" value="2"<?php if($movie['genre'] == 2) { echo ' checked'; } ?> />Comedy<br>
<br> <input type="radio" name="genre_id" value="3"<?php if($movie['genre'] == 3) { echo ' checked'; } ?> />Drama<br>
<br> <input type="radio" name="genre_id" value="4"<?php if($movie['genre'] == 4) { echo ' checked'; } ?> />Horror<br>
<br> <input type="radio" name="genre_id" value="5"<?php if($movie['genre'] == 5) { echo ' checked'; } ?> />Romance<br>
<br> <input type="radio" name="genre_id" value="6"<?php if($movie['genre'] == 6) { echo ' checked'; } ?> />Thriller<br>
<input type="submit" value="Update movie" />
</form>

这里是编辑代码:

function get_movie_by_id($id){

   $query = sprintf("SELECT * FROM movies m INNER JOIN categories c ON m.genre_id = c.genre_id WHERE id = '%s' LIMIT 1", mysql_real_escape_string($id));

   $result = mysql_query($query);

   if ( ! $result ){
       return false;
   } else {
         $return = array();

         while ($row = mysql_fetch_assoc($result)){

                $return = array('director' => $row['director'], 'genre' => $row['genre'], 'release_year' => $row['release_year'], 'title' => $row['title'], 'id' => $row['id']); 
         }
             return $return;
     }
}



if ( isset($_GET['edit']) ){

   $movie = get_movie_by_id($_GET['edit']);
}

【问题讨论】:

  • $movie['genre'] 中有什么内容?
  • 嗨!它与genre_id 相同。我实际上有 2 个表,其中一个是针对流派的,它们在流派_id 之间有外键关系。但是它们是加入的:$query = sprintf("SELECT * FROM movies m INNER JOIN categories c ON m.genre_id = c.genre_id WHERE id = '%s' LIMIT 1", mysql_real_escape_string($id));
  • 我怀疑 genregenre_id 不一样...检查一下。
  • 我也尝试将其更改为genre_id。其他一切都像魅力一样。如果我添加电影或更新电影或查看电影列表,则流派是正确的。只是当我想编辑现有电影时没有检查该值...

标签: php mysql forms radio-button


【解决方案1】:

我从您的加入中假设有问题的字段是“genre_id”,而不是“genre”:

$return = array('director' => $row['director'], 'genre' => $row['genre_id'], 'release_year' => $row['release_year'], 'title' => $row['title'], 'id' => $row['id']);

【讨论】:

  • Omg,是的,我看到了这个问题,通过将其更改为genre_id 以及将表单中的流派更改为genre_id,它就像一个魅力!非常感谢您的帮助!
  • SELECT * 邪恶的另一个例子 ;)
猜你喜欢
  • 2019-01-12
  • 1970-01-01
  • 2013-07-29
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多