मेरे पास 3 html <select>
साल, महीना और दिन है। वर्ष और महीना दोनों स्वचालित रूप से चालू वर्ष और चालू माह पर सेट हो जाते हैं। मैंने इसे पूरी तरह से PHP में किया था। हालांकि, जिस दिन जावास्क्रिप्ट द्वारा ट्रिगर किया जा रहा है वह काम नहीं कर रहा है, भले ही मैंने पहले ही किया हो
if (j == <?php echo date('d') ?>) days_select.options[days_select.options.length] = new Option(j, j, true);
डिफ़ॉल्ट दिन अभी भी 1 है न कि वर्तमान दिन। इससे भी निराशा की बात यह है कि जब मैंने इसे फायरबग पर चेक किया तो चयनित दिन वर्तमान दिन है ... मैं प्रोग्रामिंग में कुल नोब हूं इसलिए इस तरह की साधारण चीजें मेरे लिए समझना मुश्किल है। कृपया मदद करें...
date_select.php
<body onload="loadDays();">
<script type="text/javascript" >
function loadDays() {
var year = parseInt(document.getElementById('years').value);
var month = document.getElementById('months').value;
var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var days = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if ((year % 4) == 0) days[1] = 29;
var days_select = document.getElementById('days');
days_select.options.length = 0;
for(i in months) {
if (month == months[i]) {
for(var j = 1; j <= days[i]; j++ ) {
if (j == <?php echo date('d') ?>) days_select.options[days_select.options.length] = new Option(j, j, true);
else days_select.options[days_select.options.length] = new Option(j, j);
}
break;
}
}
}
</script>
<span style="display: table; ">
<span style="display: table-cell; ">
<select id="years" onchange="loadDays();">
<?php
for($year = 1900; $year <= 2100; $year++ ) {
if ($year == date('Y')) echo "<option value='$year' selected=''>" . $year . "</option>";
else echo "<option value='$year'>" . $year . "</option>";
}
?>
</select>
</span>
<span style="display: table-cell; ">
<select id="months" onchange="loadDays();">
<?php
$months = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );
foreach($months as $month){
if ($month == date('M')) echo "<option value='$month' selected=''> " . $month . "</option>";
else echo "<option value='$month'> " . $month . "</option>";
}
?>
</select>
</span>
<span style="display: table-cell; ">
<select id="days" >
</select>
</span>
</span>
</body>
2 जवाब
मैं इसे एक अलग उत्तर के रूप में डाल रहा हूं क्योंकि यह एक है।
Option()
का तीसरा पैरामीटर यह है कि क्या विकल्प डिफ़ॉल्ट रूप से चुना गया है, जैसे कि इसे HTML में निर्दिष्ट किया गया था। चौथा यह है कि क्या यह वास्तव में अभी चुना गया है। अपने Option()
कॉल में एक और true
जोड़ें और यह मेरे लिए परीक्षण में काम करता है।
new Option(j, j, true, true)
मुझे लगता है कि ऐसा इसलिए हो सकता है क्योंकि <?php echo date('d') ?>
एक अग्रणी शून्य के साथ "04"
स्ट्रिंग उत्पन्न करता है। आपका j
लूप काउंटर एक पूर्णांक है, और PHP द्वारा स्ट्रिंग आउटपुट से कभी भी मेल नहीं खाएगा।
इसे Javascript के parseInt()
फ़ंक्शन में लपेटने का प्रयास करें, या बिना किसी अग्रणी शून्य के date('j')
का उपयोग करें।
if (j == parseInt(<?php echo date('d') ?>))
बेहतर अभी तक, वर्तमान दिन प्राप्त करने के लिए जावास्क्रिप्ट की अपनी दिनांक वस्तुओं का उपयोग करें।
var theDateObj = new Date();
var today = theDateObj.getDate(); // Will output int 4 for today.
संबंधित सवाल
नए सवाल
php
PHP एक व्यापक रूप से उपयोग किया जाता है, उच्च-स्तरीय, गतिशील, वस्तु-उन्मुख, और व्याख्या की गई स्क्रिप्टिंग भाषा मुख्य रूप से सर्वर-साइड वेब विकास के लिए डिज़ाइन की गई है। PHP भाषा के बारे में सवालों के लिए इस्तेमाल किया।
new Option()
के लिए एक और पैरामीटर चाहिए। आपनेdefaultSelected
पैरामीटरtrue
सेट किया है, लेकिन आपको यह बताने के लिए निम्न पैरामीटरtrue
की भी आवश्यकता है कि क्या यह वास्तव में अभी चुना गया है।new Option(j, j, true, true);
इस संशोधन के साथ मेरे लिए परीक्षण किया और काम किया।