2013-11-22 56 views
0

我在wordpress网站的前端实施了一些复选框,以从注册用户那里获取一些信息。我总是问他们例如:“你是设计师吗?”或“你是演员?”并在下面设置一个复选框,以便他们可以检查它或让它不被选中。更改复选框的回显值

复选框代码如下所示:

<input type="checkbox" name="new_user_designer" id="new_user_designer" value="true" <?php if (esc_attr(get_the_author_meta( "new_user_designer", $userdata->ID)) == "true") echo "checked"; ?> /> 

我保存复选框输入用:

if ($_POST['new_user_designer'] != $user_info->new_user_designer) 
    update_user_meta($user_info->ID, 'new_user_designer', sanitize_text_field($_POST['new_user_designer'])); 

到目前为止,一切都很正常!但这是我的问题,我需要你的帮助。 我会在用户的Authorbox中回显复选框的值。我想这样的代码:

<?php echo $user_info->new_user_designer; ?> 

上面的代码工作要为每个用户提供正确的复选框的状态,但它返回 值“真”。现在,我怎么能改变输出“真”到“设计师”或任何自定义的单词......? 同样,如果用户选中复选框,它应该在作者框中显示Designer而不是仅显示“true”?

第二个问题:

如果是我的第一个问题的解决方案,我需要一些帮助来显示多个检查输入从2个或更多的复选框一排,如果一些用户检查不止一个复选框。例如,用户是一个设计师和演员,他会检查2个复选框,现在应该在用户信息框显示:

设计师,演员

+0

恩,你在输入元素上自己设置'value =“true”'。如果您将其更改为任何您想要的内容,您的代码是否仍然有效? – mabi

+0

嗨玛比,我试图将value =“true”更改为value =“Designer”,但是保存更改后复选框不显示检查。但是通过这种改变,输出显示了我“设计师”而不是“真实”..? – NewUser

回答

0

我觉得你应该更改下面的代码

<input type="checkbox" name="new_user_designer" id="new_user_designer" value="true" <?php if (esc_attr(get_the_author_meta( "new_user_designer", $userdata->ID)) == "true") echo "checked"; ?> /> 

<input type="checkbox" name="new_user_designer" id="new_user_designer" value="Designer" <?php if (esc_attr(get_the_author_meta( "new_user_designer", $userdata->ID)) == "Designer"){ echo "checked";} ?> /> 
+0

嗨Ram夏尔马,我试过你的建议,但然后复选框不会显示在保存更改后检查... – NewUser

+0

@NewUser你可以告诉我们什么'get_the_author_meta(“new_user_designer”,$ userdata-> ID)'输出?也许它没有正确地存储/检索你的值? – mabi

+0

@mabi <?php echo get_the_author_meta(“new_user_designer”,$ userdata-> ID)?>输出单词:true并且看起来很好,因为Designer Checkbox被选中。当我取消选中该复选框时,它什么也不显示。 – NewUser