2013-11-22 60 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