0

私は Jquery を使用していますが、Get メソッドを使用してフォームを送信するまでは完全に機能しています。

2 つの日付の間で情報を取得しようとしています。これが私のコードです:

日付.php:

......

$date1 = $_GET['date1'];
$date2 = $_GET['date2'];
echo"<Form method='get' action=''>
<label>From: </label> <input class='date' id = 'date1' type='date' name='date1' size='9' value = '$date1'></input>
<label>To: </label> <input class='date' id = 'date2' type='date' name='date2' size='9' value = '$date2'></input> <br/> ";

echo "<input type='submit' class = 'center' value='submit' name='submit'>";
echo'</Form>';

if($date1 != '' && $date2 != '' ){
report($date1,$date2);
}
......

<script type='text/javascript' src='js/jquery.js'></script>
<script type='text/javascript' src='js/jquery-ui.js'></script>
<script type='text/javascript' src='js/ui.js'></script> //my jquery functions

......

ui.js:

$('.date').datepicker({dateFormat: 'yy-mm-dd'});

function toggleReport(table){   
$('#'+table).toggle('slow').colSpan = 3;
}

フォームの GET メソッドに何か問題がありますか? 代わりに ajax を使用する必要がありますか? 必要な場合、Get を ajax で使用するにはどうすればよいですか? 今までポストメソッドでのみajaxを使用していました

ありがとう!!!

編集: このすべてが私の問題ではなかったようです.私のPHPの何かが問題です.

私は本当に混乱しました。上記のdate.phpファイルを更新しました

レポート機能は次のとおりです。

function report($date1,$date2){

 $id = $_SESSION['id'];
 $techs = mysql_query("SELECT * FROM TECHS WHERE COMP_ID = '$id'")
 or die(); 
 $comps = mysql_query("SELECT * FROM COMPS WHERE COMP_ID = '$id'")
 or die(); 


  echo '<h1>Technicians</h1>';
  //tech Table
  echo "<table id='center'><tr><th id='hello'>Tech</th><th id='hello'>jobs</th><th    id='hello'></th></tr>";

 while($info = mysql_fetch_array( $techs ))  
{
$name = $info['Name'];
$jobs = mysql_query("SELECT * FROM JOBS WHERE COMP_ID = '$id' AND Technician = '$name' AND Date >= '$date1' AND Date <= '$date2' ORDER BY Date ASC") or die(); 
    $data = mysql_fetch_array( $jobs );

$number = mysql_num_rows($jobs);
if($number>'0'){
$name_st = remove_spaces($name);
$name_st.= '_t';
echo "<tr><td>$name</td><td>$number</td><td><img onclick='toggleReport(\"$name_st\");' src='images/report.png' border='0' alt='View report' title='View report'>
    </td></tr>";

    echo"
    <tr><td colspan='3' style='width:99%;' id='$name_st'  >
    <table >
        <th id='hello'>invoice</th><th id='hello'>Job ID</th><th id='hello'>Company</th><th id='hello'>Date</th><th id='hello'>Address</th><th id='hello'>Tech %</th><th id='hello'>Total</th><th id='hello'>Parts</th><th id='hello'>Company Parts</th><th id='hello'>Cash</th><th id='hello'>CC</th><th id='hello'>Check</th><th id='hello'>Fees</th><th id='hello'>Addt. Fees</th><th id='hello'>Company Balance</th><th id='hello'>Tech Balance</th><th id='hello'>Profit</th>

        ";
         $job = mysql_query("SELECT * FROM JOBS WHERE COMP_ID = '$id' AND Technician = '$name' ORDER BY Date ASC") or die(); 

        while($j = mysql_fetch_array( $job )){
            echo "<tr><td>".$j['invoice'].'</td>'.'<td>'.$j['jobID'].'</td>'.'<td>'.$j['Company'].'</td>'.'<td>'.$j['Date'].'</td>'.'<td>'.$j['Address'].'</td>'.'<td>'.$j['Tech_per'].'%</td>'.'<td>'.$j['Total'].'</td>'.'<td>'.$j['parts'].'</td>'.'<td>'.$j['comp_parts'].'</td>'.'<td>'.$j['cash'].'</td>'.'<td>'.$j['cc'].'</td>'.'<td>'.$j['check'].'</td>'.'<td>'.$j['fees'].'</td>'.'<td>'.$j['addt. fees <br> need to fix'].'</td>'.'<td>'.$j['comp_total'].'</td>'.'<td>'.$j['tech_total'].'</td>'.'<td>'.$j['profit'].'</td></tr>';
        }


        echo"
    </table></td></tr>";

}
  }
 echo '</table>';
 echo '<h1>Companies</h1>';
  echo "<table id='center'><tr><th id='hello'>Companies</th><th id='hello'>jobs</th><th   id='hello'></th></tr>";

   while($info = mysql_fetch_array( $comps ))  
 {
 $name = $info['name'];
 $jobs = mysql_query("SELECT * FROM JOBS WHERE COMP_ID = '$id' AND Company = '$name' Date >= '$date1' AND Date <= '$date2'  ORDER BY Date ASC") or die(); 
    $data = mysql_fetch_array( $jobs );

$number = mysql_num_rows($jobs);
if($number>'0'){
$name_st = remove_spaces($name);
$name_st.= '_d';
echo "<tr><td>$name</td><td>$number</td><td><img onclick='toggleReport(\"$name_st\");' src='images/report.png' border='0' alt='View report' title='View report'>
</td></tr>";

    echo"
    <tr><td id='$name_st' class = 'hidden' colspan='3'>
    <table >
        <th id='hello'>invoice</th><th id='hello'>Job ID</th><th id='hello'>Company</th><th id='hello'>Date</th><th id='hello'>Address</th><th id='hello'>Comp %</th><th id='hello'>Total</th><th id='hello'>Parts</th><th id='hello'>Company Parts</th><th id='hello'>Cash</th><th id='hello'>CC</th><th id='hello'>Check</th><th id='hello'>Fees</th><th id='hello'>Addt. Fees</th><th id='hello'>Company Balance</th><th id='hello'>Tech Balance</th><th id='hello'>Profit</th>

        ";
         $job = mysql_query("SELECT * FROM JOBS WHERE COMP_ID = '$id' AND Company = '$name' ORDER BY Date ASC") or die(); 

        while($j = mysql_fetch_array( $job )){
            echo "<tr><td>".$j['invoice'].'</td>'.'<td>'.$j['jobID'].'</td>'.'<td>'.$j['Company'].'</td>'.'<td>'.$j['Date'].'</td>'.'<td>'.$j['Address'].'</td>'.'<td>'.$j['Comp_per'].'%</td>'.'<td>'.$j['Total'].'</td>'.'<td>'.$j['parts'].'</td>'.'<td>'.$j['comp_parts'].'</td>'.'<td>'.$j['cash'].'</td>'.'<td>'.$j['cc'].'</td>'.'<td>'.$j['check'].'</td>'.'<td>'.$j['fees'].'</td>'.'<td>'.$j['addt. fees <br> need to fix'].'</td>'.'<td>'.$j['comp_total'].'</td>'.'<td>'.$j['tech_total'].'</td>'.'<td>'.$j['profit'].'</td></tr>';
        }


        echo"
    </table></td></tr>";

   }
 }
 echo '</table>';


}
4

1 に答える 1

0

フォームに空白のaction属性があります:

<Form method='get' action=''>

送信先の URL をそこに入れる必要があります。たとえば、同じ 'date.php' ページに送信するには:

<form method='get' action='date.php'>

(コメントで、JS の「すべて」は datepicker コントロールを初期化する単一のステートメントであると述べたため、JS から設定しようとしていないと想定しています。そうでない場合は、質問を更新してすべてを表示してください。フォームに関連する JS コード。)

編集:申し訳ありませんが、問題を誤解していると思います。フォームが適切に機能していないということだと思いました。JS が正しく動作していないと言っている場合は、ページが読み込まれる前に実行されている可能性があります。ui.js ファイル内で、JS をドキュメント対応ハンドラーでラップしてみてください。

$(document).ready(function() {
    $('.date').datepicker({dateFormat: 'yy-mm-dd'});
});

そうは言っても、ページをそれ自体に送信する場合は、Ajax が妥当な代替手段になります。

「Get を ajax で使用するにはどうすればよいですか?」

$.get()$.ajax()docoを見てください- どうやら「GET」が実際にはtypeパラメーターのデフォルトです。

于 2012-05-30T02:14:57.863 に答える