0 レビュー
2 回答
php-1つのオプションを選択した後、HTML選択タグを開きます
次のようなHTML選択タグがあります:
<select name="since_date">
<option value="<?php $sixmonths = date('Y-m-d', strtotime('-6 months')); echo $sixmonths; ?>">6 months</option>
<option value="<?php $fivemonths = date('Y-m-d', strtotime('-5 months')); echo $fivemonths; ?>">5 months</option>
<option value="<?php $fourmonths = date('Y-m-d', strtotime('-4 months')); echo $fourmonths; ?>">4 months</option>
<option value="<?php $threemonths = date('Y-m-d', strtotime('-3 months')); echo $threemonths; ?>">3 months</option>
<option value="<?php $twomonths = date('Y-m-d', strtotime('-2 months')); echo $twomonths; ?>">2 months</option>
<option value="<?php $onemonth = date('Y-m-d', strtotime('-1 month')); echo $onemonth; ?>">1 month</option>
</select>
たとえば、4か月を選択すると、次のような新しい選択タグが表示されます。
<select name="until_date_4months">
<option value="<?php $threemonths = date('Y-m-d', strtotime('-3 months')); echo $threemonths; ?>">3 months</option>
<option value="<?php $twomonths = date('Y-m-d', strtotime('-2 months')); echo $twomonths; ?>">2 months</option>
<option value="<?php $onemonth = date('Y-m-d', strtotime('-1 month')); echo $onemonth; ?>">1 month</option>
<option value="<?php $now = date('Y-m-d'); echo $now; ?>">Now</option>
</select>
期間が選択されるたびに(例:6か月、5か月)、選択されたオプションよりも低いオプションに加えて、上記のような新しいオプション「Now」を含む新しい選択が表示される必要があります。これはどのように可能ですか?アプローチは何ですか?これらの情報を送信ボタンで使用したいと思います。 (JQueryを使用して特定のPHPファイルにGETリクエストを送信します<-これは処理方法を知っています)。 たとえば、次のようなJavaScriptを使用できます。
function sinceDateValue(selection) {
if (selection.value == "<?php $fourmonths = date('Y-m-d', strtotime('-4 months')); echo $fourmonths; ?>") {
document.getElementbyId(until_date_4months).style.display = "block"
}
}
そして2回目の送信id="until_date_4months"
とstyle="display: none;"
に使用します。また、最初の送信 onchange="testValue(this);
の場合も、送信が表示されるだけなので、since_dateとuntil_dateの2つの情報のみを送信したいと思います...
わからない
0
レビュー
答え :
解決策:
ループを使用して動的にオプションを作成できます:
<?php for ($i = 6; $i >= 0; $i--) { ?>
<option value="<?php echo date('Y-m-d', strtotime('-' . $i . ' months')); ?>">
<?php echo ($i == 0) ? 'Now' : $i . ' months'; ?>
</option>
<?php } ?>
jQueryの場合、選択した要素に基づいて要素を取得し、選択ボックスに次の要素を入力できます。
$('select[name="since_date"]').on('change', function() {
var newOpts = $('option:selected', this).nextAll().clone();
$(newOpts).show().appendTo('#example');
});
これがフィドルの完全な例です
わからない
0
レビュー
答え :
解決策:
このようなことを行うことができます。必要なのは、オプションの正しい値を設定することだけです。
$("#one").change(function(){
var htmlOf2 = "", d;
for(var i=1;i<parseInt($(this).find("option:selected").text()) + 1;i++)
{
d = new Date();
d = d.setMonth(d.getMonth() + (i * -1));
// This sets the right month, but is not set as a value yet. I don't know what format you want
htmlOf2 += "<option value=''>" + (i + " months") + "</option>";
}
htmlOf2 += "<option>NOW</option>";
$("#two").html(htmlOf2);
}).trigger("change");
ライブフィドル: http://jsfiddle.net/5qaw7/1/
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。