2016-11-15 11 views
-2

私はcheckdate PHPコードを持っており、日付をある種のphp/jscriptコードに置き換える必要があります。たぶん、いくつかのhtmlフォーム要素。日付を挿入する方法、日付を挿入する方法、ファイル内の日付を入れ替える方法があります。この例では、この線の内側日付:htmlファイル内のコードを変更する

<?PHP 


function isValidDate($sd, $ed, $currentDate = null) 
{ 
    if ($currentDate === null) { 
     $currentDate = date('Y-m-d'); 
    } 

    return ($currentDate >= $sd && $currentDate <= $ed); 
} 

$startDate = '2016-10-30'; 
$endDate = '2016-10-31'; 

if (isValidDate($startDate, $endDate)) { 
    header("Location: x.php"); 
} else { 
    header("Location: y.htm"); 
} 
?> 

この例では、これらの線

$startDate = '2016-10-30'; 
    $endDate = '2016-10-31'; 

日に交換する必要があります。それは、誰かが日付を提出した後

<input type="text" value="XXXX-XX-XX" name="start"/> 
     <input type="submit" value="startdate"/> 
and <input type="text" value="XXXX-XX-XX" name="end"/> 
     <input type="submit" value="enddate"/> 

のように日付を挿入することができ、HTML5の入力/フォーム要素のいくつかの種類、で可能でなければなりません

は、PHP/JScriptのか、このような何かを経由して交換する必要があります。 これも可能ですか?誰かが右の方向に私をプッシュすることができます、多分いくつかのチュートリアルのリンクf.e.?

ありがとうございます。

+0

より詳しく説明してください。 – Jackowski

+0

こんにちはと歓迎するスタックオーバーフロー。ここでは、最初に自分でそれを試してみることを期待しています - チュートリアルのためにグーグルで試してみてください。ちょうどそれに亀裂があり、あなたがどこに行くかを見てください(あなたがすでにやっている方法を知っているすべての簡単なビットを行います、そして、あなたがまだできないビットをGoogleに)。まだ動作していない場合は、質問を編集し、試したコードを表示し、取得したエラーを教えてください。しかし、最も重要なのは、あなたが観察していることと、あなたが代わりに見たいと思ったことを教えてください。 –

+0

@Jackowski私は私の投稿を編集しました! @ Taryn East私はすでにGoogleにしようとしましたが、良い解決策を見つけることはありません。これは、私のニーズに合わない 'document.write()'のものを常に指しています!私は可能な方法を知っていれば尋ねません。 – pr0cz

答えて

1

$ _POST配列を使用する必要があると思います。あなたが見ることができるようにフィールドの値があるため、あなたは、そのvalue="XXXX-XX-XX"属性を必要としない

<form method="POST" action="your_file_name.php"> 
    <input type="text" name="start_date"/> 
    <input type="text" name="end_date"/> 
    <input type="submit" value="my_form_dates"/> 
</form> 

、その後

<?php 

    function isValidDate($sd, $ed, $currentDate = null) 
    { 
    if ($currentDate === null) { 
     $currentDate = date('Y-m-d'); 
    } 
    return ($currentDate >= $sd && $currentDate <= $ed); 
    } 

    if (is_set($_POST['start_date']) && is_set($_POST['end_date'])) { 
    $startDate = $_POST['start_date']; 
    $endDate = $_POST['end_date']; 
    } 

    if (isValidDate($startDate, $endDate)) { 
    header("Location: x.php"); 
    } else { 
    header("Location: y.htm"); 
    } 

?> 

にあなたのプログラムを変更します。

まずは次のようにフォームを持っています実行時にユーザーが入力します。

your_file_name.phpは、プログラムの名前と一致する形式にしてください(.phpまたは.html)。

この$_POST配列の詳細については、this pageをお読みください。

+0

ありがとうございました!これにより、開始日と終了日のソースコードが永久に変更されますか?それとも、リダイレクトされるだけですか? – pr0cz

+0

どれもありません。これによってコードは変更されません。これはあなたをどこにもリダイレクトしません。 **これにより、2つの日付のハードコーディングを避けることによって、コードを柔軟にすることができます。**ユーザーは2つの日付を入力し、プログラムはそれらを使用します。フォームが送信されるたびに、プログラムはフォームに入力された日付を受け取ります。 –

+0

エド、あなたはOPを使用して同じ構文を残しました、 'header(" y.htm ");'はキャッチされ、修正されているはずです。 OPがその名前のカスタム機能を持っていない限り、私は真剣にそれを疑う。編集:そこにOPが自分のコメントで回答したもの。 –

関連する問題