2011-03-04 13 views
6

यदि कोई उपयोगकर्ता फॉर्म सत्यापन को विफल करता है, तो उसके लिए इसे आसान बनाने के लिए हम यह कर सकते हैं:PHP में चुने गए फॉर्म मानों को "याद" कैसे करें?

if(isset($_POST['submit'])) { 
    $email = $_POST['email']; 
    //.... 
} 

<input type="text" name="phone" value="<?php echo $phone; ?>" /> 
<input type="text" name="email" value="<?php echo $email; ?>" /> 
... 

तो इस मामले में, यदि उपयोगकर्ता सत्यापन में विफल रहता है क्योंकि उन्होंने एक ईमेल दर्ज किया लेकिन फ़ोन नंबर नहीं, तो कब पेज सबमिट करने पर ताज़ा हो जाता है और उन्हें लापता फोन की चेतावनी देता है, ईमेल (जिसे उन्होंने भर दिया था) पहले से ही इसकी जगह पर होगा और उपयोगकर्ता को इसे फिर से टाइप करने की आवश्यकता नहीं होगी।

लेकिन मैं चुनिंदा, रेडियो और चेकबॉक्स इनपुट के लिए उपयोगकर्ता द्वारा चुने गए मानों को "याद" कैसे कर सकता हूं?

+0

में विकल्प इन फ़ील्ड प्रकारों के लिए नियमित HTML सुविधाओं तक के साथ इसी तरह: "चयनित", "जाँच" और इतने पर। क्या आप उन्हें नहीं जानते? –

+0

इस प्रश्न से पहले पूछा गया है: http://stackoverflow.com/questions/2246227/keep-values-selected-after-form- सबमिशन – Infotekka

उत्तर

1

यह वही काम करता है, लेकिन यह कुछ अधिक काम की आवश्यकता होती है करेंगे:

<select name="whatever"> 
    <option value="Apple">Apple</option> 
    <option value="Banana" selected="selected">Banana</option> 
    <option value="Mango">Mango</option> 
</select> 
Banana is selected here. 

<input type="checkbox" name="fruits[]" value="banana" /> Banana 
<input type="checkbox" name="fruits[]" value="mango" checked="checked" /> Mango 
<input type="checkbox" name="fruits[]" value="apple" checked="checked" /> Apple 
Mango and Apple are checked here 

तो मूल रूप से आप उचित खाने के लिए selected="selected" या checked="checked" जोड़ने जब आप प्रपत्र उत्पन्न करते हैं।

एक और विकल्प यह चुनने के लिए jQuery जैसे कुछ का उपयोग करेगा कि पेज लोड होने के बाद और डीओएम मैनिपुलेशन के लिए तैयार हो। इस तरह आप कोड को उलझाने के बिना आसानी से सभी जगहों को एक ही स्थान पर डाल सकते हैं। बेशक अब एक नकारात्मक पक्ष है कि आपको jQuery लोड करना होगा और आपके उपयोगकर्ताओं को जेएस एक होना होगा।

1

यहां कुछ नमूना कोड है।

<?php 
$options = array('option1' => 'Option 1', 'option2' => 'Option 2', 'option3' => 'Option 3'); 
$myselect = 'option2'; 
?> 
<select name="myselect"> 
<?php 
foreach($options as $key => $value) { 
    echo sprintf('<option value="%s" %s>%s</option>', $key, $key == $myselect ? 'selected="selected"' : '', $value); 
} 
?> 
</select> 

यदि आप नियमित रूप से इस तरह की चीजें कर रहे हैं तो यह किसी फ़ंक्शन में बहुत कठिन है या आप फॉर्म क्लास हेल्पर भी बना सकते हैं।

<?php 
function form_select($name, $options, $selected) { 
    $html = sprintf('<select name="%s">', $name); 
    foreach($options as $key => $value) { 
     $html .= sprintf('<option value="%s"', $key); 
     if ($selected == $key) 
      $html .= ' selected="selected"'; 
     $html .= sprintf('>%s</option>', $value); 
    } 
    $html .= '</select>'; 
    return $html; 
} 

तो फिर तुम सिर्फ फोन करके बस किसी भी चयन बना सकते हैं::

यहाँ एक बुनियादी चयन समारोह है

echo form_select('myselect', $options, $selected); 

आप समारोह शैली, वर्ग और आईडी की तरह आगे विशेषताओं को संभाल कर easiliy सकते हैं ।

0
<input type="radio" name="xxxx" <?php if ($xxx == 'VALUE') echo "checked=\"checked\""; ?>" /> 

चयन

संबंधित मुद्दे