0

訪問者が曜日をクリックすると、その日のラジオ局のスケジュールが表示されるページ (http://qccr.dyndns.org:82/on-air-schedule) があります。唯一の問題は、それが発生したときにページが完全に更新されることです。ページ全体ではなく、ページ中央のスケジュールだけ変更した方がよいでしょう。JavaScriptについてよくわからないのですが、簡単にできる方法はありますか?

関連するコードはここにあります(私は思う):

    <?php



    <div class="date-input-form">
        <form action="" method="post" id="ddateform" >
            <input type="hidden" name="ddate" id="ddate" size="11" maxlength="10" value="" />
            <?php echo JHTML::_( 'form.token' ); ?>
        </form>
    </div>


    <div id="navcontainer">

    <ul id="navlist">
    <?php if($currentday=="Monday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('monday')); ?>'; document.getElementById('ddateform').submit();">Monday</a></li>
    <?php endif; ?>

    <?php if($currentday=="Tuesday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('tuesday')); ?>'; document.getElementById('ddateform').submit();">Tuesday</a></li>
    <?php endif; ?>

    <?php if($currentday=="Wednesday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('wednesday')); ?>'; document.getElementById('ddateform').submit();">Wednesday</a></li>
    <?php endif; ?>

    <?php if($currentday=="Thursday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('thursday')); ?>'; document.getElementById('ddateform').submit();">Thursday</a></li>
    <?php endif; ?>

    <?php if($currentday=="Friday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('friday')); ?>'; document.getElementById('ddateform').submit();">Friday</a></li>
    <?php endif; ?>

    <?php if($currentday=="Saturday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('saturday')); ?>'; document.getElementById('ddateform').submit();">Saturday</a></li>
    <?php endif; ?>

    <?php if($currentday=="Sunday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('sunday')); ?>'; document.getElementById('ddateform').submit();">Sunday</a></li>
    <?php endif; ?>

    </ul>
</div>
4

3 に答える 3

1

私はPHPについてあまり知らないので、これを一粒の塩で考えてください。

デフォルトでは、HTML フォームは送信時にページを更新しません。何か (PHP だと思います) によって HTML フォームが生成され、フォーム送信時にページが更新されます。

バリーの答えがうまくいくかどうかはわかりませんが、試してみたい場合は、月曜日のliのコードを次のように置き換えてください。

あなたのフォーマットで

<?php if($currentday=="Monday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick="document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('monday')); ?>'; document.getElementById('ddateform').submit(); return false;">Monday</a></li>
<?php endif; ?>

まともなフォーマットで

<script type="text/javascript">
    function onMondayClick(event) {
        document.getElementById('ddate').value = '<?php echo date('Y-m-d', strtotime('monday')); ?>';
        document.getElementById('ddateform').submit();
        return false;
    }
</script>

<?php if($currentday=="Monday") : ; ?>
    <li class="currentday"><?php echo $currentday; ?></li>
    <?php else : ?>
    <li><a href="#" onclick=onMondayClick>Monday</a></li>
<?php endif; ?>
于 2012-09-21T19:30:11.460 に答える
0

これは、jquery post 関数を使用するか、ajax 呼び出しを使用してフォームデータを投稿することで実行できます。

于 2012-09-21T19:41:14.487 に答える
0

どの JavaScript 関数を呼び出してもreturn false;、デフォルトの動作を防ぐために a を実行します。

<a onclick="dothis(); return false;" href="#">Click Me</a>

-また-

<a onclick="dothis();" href="#">Click Me</a>
<script type="text/javascript">
  function dothis() { /* stuff here */ return false; }
</script>

いくつかの JavaScript の基本を学んでください。

于 2012-09-21T19:11:31.993 に答える