从mysql data with function中选中单选框


check a radio box from mysql data with function

我正在尝试建立一个编辑页面来编辑我以前的帖子所以当我点击编辑链接前的文章它发送文章id到edit。php现在这里是我的问题,我想检查一个单选框在编辑页面,显示我当前的帖子的类别我有一个这样的函数:

function category($name,$postid){
if( $name == $postid)
    {
        return "checked";   
    }
}
在edit

$postid=$_GET['postid']
$query=mysqli_query($con,"SELECT *FROM category");
    while($s=mysqli_fetch_array($query)){
    echo 
'<table width="200" border="1">
    <tbody>
    <tr>
    <td>'.$s['category_name'].'</td>
    <td><input type="radio" name="post_category" value="'.$s['category_name'].'" '.category($s['id'],$postid).'></td>
    </tr>
    </tbody>
</table>';
}

但是它不检查单选框

如果没有实际看到不匹配的内容,很难判断,但是从您的命名来看,看起来您正在将Id与Name匹配。如果您正在匹配Id,那么您应该使用parseInt来确保您正在处理整数并以相同的格式比较数据。

您应该告诉PHP编写函数的返回值:

编辑# 1

将函数更改为总是返回值

function category($id, $postid) {
    if( $id== $postid)
    {
        return "checked";   
    }
    return null;
}

返回值将用"checked"或null填充var $checked或

while($s = mysqli_fetch_array($query)) {
    $checked = category($s['id'], $postid);
    echo 
        '<table width="200" border="1">
            <tbody>
                <tr>
                    <td>'.$s['category_name'].'</td>
                    <td>
                        <input... ' . $checked . '>
                    </td>
                </tr>
             </tbody>
         </table>';
}