2012-02-10 9 views
1

これはおそらく私が逃したことがあるので、私を怒らせるでしょうが、ユーザが国とリーグ名を選択し、見つかった結果のテーブルを返します。PHPはフォームからデータを返しません

私が抱えている問題は、その検索フォームが送信された場合、何も返されませんが、正常にページを正常にリフレッシュするだけで、正常に動作し、すべての結果が返されます。以下に示すように、フォームが提出されておらず、うまく動作していれば、$ subleaguesearchと$ countrysearch変数を設定しています。それが送信されたときだけです。なぜそれが見つからないようです。どんな助けも素晴らしいだろう!ありがとう。

p.s何も返さないというエラーメッセージは表示されません。そしてフォームのサブミット後に変数を画面に表示して戻ってきたので、変数が正しい値に設定されていることがわかります。

あなたの問題を想像
 <form action="" method="post" autocomplete="off"> 
     <table id="searchsubleaguetable" width="670px" align="left" cellpadding="1" cellspacing="0">  
        <tr colspan="2"> 
        <th colspan="2" align="left"><label>SEARCH SUBLEAGUES</th> 
        </tr> 
        <tr> 
        <td align="right"><label>COUNTRY&nbsp;&nbsp;</td> 
        <td align="left"><SELECT NAME="country" style="font-size:12px; padding:4px;"><OPTION VALUE="0">All Countries<?php echo $options;?></option></SELECT></label></td> 
        </tr> 
        <tr> 
        <td align="right"><label>SEARCH&nbsp;&nbsp;</td> 
        <td align="left"><input class="searchinputs" type="text" name="subleaguesearch" size="40" value=""></label></td> 
        </tr> 
        <tr width="100%" height="20px" colspan="2"> 
        <td align="right"><label></td> 
        <td align="left"><input class="searchbutton" type="submit" value="Search" name="searchsubnow"></label></td> 
        </tr> 
       </table> 
      </form> 




     if (isset($_POST['searchsubnow'])){ 
      $subleaguesearch = mysql_real_escape_string($_POST['country']); 
      $countrysearch = mysql_real_escape_string($_POST['subleaguesearch']);   
      if($countrysearch == 0){ 
      $countrysearch = "%%"; 
      } 
     }else{ 
      $subleaguesearch = ""; 
      $countrysearch = "%%"; 
     } 

     $rowsPerPage = 15; 
     $pageNum = 1; 

     if(isset($_GET['page'])){ 
      $chosenpage = mysql_real_escape_string($_GET['page']); 
      $pageNum = $chosenpage; 
     } 

     $offset = ($pageNum - 1) * $rowsPerPage; 

     $result = mysql_query(" SELECT s.league_id, s.leaguename, s.private, s.date, u.flag, u.firstname, u.country, 
           COALESCE(SUM(r.total_points),0) as totalpoints, 
           count(m.member_id) participants 
           from sub_leagues s 
           Left Join members_leagues m 
           On m.league_id = s.league_id 
           Left Join member_results r 
           On r.member_id = m.member_id 
           join members u 
           on s.admin = u.member_id 
           WHERE u.country LIKE '$countrysearch' 
           AND s.leaguename LIKE '$subleaguesearch%' 
           Group By s.league_id 
           Order By r.total_points DESC, participants DESC, s.date ASC " . " LIMIT $offset, $rowsPerPage") 
         or die ("<br/>&nbsp;Error - could not display league"); 
+0

私たちはフォームを見ることができますか?リフレッシュすると、以前のリクエストでフォームを提出した後にリフレッシュすることを意味しますか? – dqhendricks

+1

HTMLフォームを追加して、それらがどのように適合するかを確認できますか? – Chillie

+0

私がリフレッシュすると、フォームによる提出なしで普通のページをロードするだけです。 – user969729

答えて

1

は、このコードである:

$subleaguesearch = mysql_real_escape_string($_POST['country']); 
$countrysearch = mysql_real_escape_string($_POST['subleaguesearch']);   
if($countrysearch == 0){ 
    $countrysearch = "%%"; 
} 

まず、あなたがチェックし、$ _POST [ '国']と$ _POST [ 'subleaguesearchは']あなたが何を考えて含まれていることを確認する必要がありますそれらが中に含んでいる。そうでない場合は、あなたのフォームのフィールドを間違っていると誤って指定しました。

第2に、不適切な検索変数に間違った投稿フィールドを割り当てたようです。 $ _POST ['subleaguesearch']と等価ではなく、$ subleaguessearch = $ _POST ['country']をお知らせください。 $ countrysearchと同じです。代わりに、それは次のようなものでなければなりません:

$subleaguesearch = mysql_real_escape_string($_POST['subleaguesearch ']); 
$countrysearch = mysql_real_escape_string($_POST['country']); 
+0

ああ、私の神、ハハ時々、あなたのためにそれを見るために目の新鮮なペアが必要!どうもありがとう!すべての時代の無駄なこと...ごめんなさい! – user969729

+0

@ user969729心配する必要はありません。お役に立てて嬉しいです。 – dqhendricks

関連する問題