dpmwy80068 2012-05-30 01:25
浏览 33
已采纳

使用Get方法取消jQuery

I am using Jquery and it is working perfectly until i submit a form using Get Method.

I am trying to get information between 2 dates. Here is my code:

date.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;
}

Is there anything wrong with my GET method in my form? should i use ajax instead? if i should, how do i use Get in ajax? until now i only used ajax with post method

THANKS!!!

EDIT: it seems that it this whole thing wasn't my problem, something in my php is the problem.

I really got confused, i updated the date.php file above

Here is the report function:

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>';


}
  • 写回答

1条回答 默认 最新

  • doujing6053 2012-05-30 02:14
    关注

    Your form has a blank action attribute:

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

    You need to put the URL you want to submit to in there, e.g., to submit back to the same 'date.php' page:

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

    (I am assuming you are not trying to set it from JS because you said in a comment that "all" of your JS is a single statement that initialises your datepicker controls. If that is not the case please update your question to show all of the JS code related to the form.)

    EDIT: Sorry, I think I misunderstood the problem. I thought you meant that the form wasn't working properly. If you're saying that your JS isn't working properly it is probably because it is running before the page has loaded. Within your ui.js file try wrapping your JS in a document ready handler:

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

    Having said that, if you are submitting the page back to itself then Ajax would be a reasonable alternative.

    "how do i use Get in ajax?"

    Look at the $.get() and $.ajax() doco - apparently "GET" is actually the default for the type parameter.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调