5

1つのテキストフィールドと1つの選択ボックスを持つフォームを作成しました。ボタンも作成しました。今、私がしたいのは、ボタンが押されたときに、フォーム内の文字列をデータベースと照合し、それらの照合の結果を返して画面に表示することです。

たとえば、テキストフィールドボックスに「履歴」と入力し、ボタン([送信]ボタン)が押されたときに選択ボックスから[レベル2]を選択した場合、単語と一致するすべてのものをページに返します。履歴と私のデータベースでのレベル2の選択。

PHPを介してページをデータベースに接続する必要があることはわかっていますが、それは正常に実行されましたが、HTMLフォームを取得してデータベースにクエリを実行し、結果を画面に戻す方法がわかりません。

私が作成したいコンセプトに非常に似ているウェブサイトの例については、このウェブページを見てください。http://search.ucas.com/cgi-bin/hsrun/search/search/search.hjx;start=search.HsSearch.run?y=2013&w=H(UCASコース検索)このウェブサイトには複数のテキストフィールドがあり、ボックスと送信ボタンは、私が作成しようとしているものとまったく同じであり、提供される結果は、検索されたものと一致する結果のみです。

以下のコードは、テキストフィールドをデータベースにリンクするという点では機能しますが、テキストフィールドと選択ボックスを取得してデータベースをリンクおよびクエリすることはできません。どちらか一方のみです。両方を同じボタン(検索ボタン)から動作させたい

<form  method="post" action="Webpage here"  id="searchform">
  <input  type="text" name="name">
  <input  type="submit" name="submit" value="Search">
</form>
<form id="form1" name="ExamBoard" method="post" action="Webpage here">
  <label for="select"></label>
  <select name="ExamBoard" id="select">
    <option value="EB1" selected="selected">EB1</option>
    <option value="EB2">EB2</option>
    <option value="EB3">EB3</option>
  </select>
  <input  type="submit" name="submit" value="Search">
</form>
<p>&nbsp;</p>
<p>
<?php
 if(isset($_POST['submit'])){
 if(isset($_GET['go'])){
 if(preg_match("/^[  a-zA-Z]+/", $_POST['name'])){
 $name=$_POST['name'];
  //connect  to the database
 $db=mysql_connect  ("Name", "User",  "Password*") or die ('I cannot connect to the      database  because: ' . mysql_error());
 //-select  the database to use
 $mydb=mysql_select_db("Table Name");
  //-query  the database table
  $sql="SELECT  ID, CourseName, ExamBoard FROM subjects WHERE CourseName LIKE '%" . $name .  "%' ";
   //-run  the query against the mysql query function
   $result=mysql_query($sql);
    //-create  while loop and loop through result set
    while($row=mysql_fetch_array($result)){
      $CourseName  =$row['CourseName'];
      $ID=$row['ID'];
      $ExamBoard=$row['ExamBoard'];
  //-display the result of the array
  echo "<ul>\n";
  echo "<li>" . "<a  href=\"search.php?id=$ID\">"   .$CourseName . " " .  "</a></li>\n" ;
  echo  $ExamBoard . " " .  "</a>\n";
  echo "</ul>";
  }
  }
  }
  }
  ?>
4

2 に答える 2

1

新しい HTML ファイル

newHTML.htm

<form  method="post" action="Webpage here"  id="searchform">
  <input  type="text" name="name">
  <input  type="submit" name="submit" value="Search">
</form

新しい PHP ファイル

newPHP.pfp

<?php
 if(preg_match("/^[  a-zA-Z]+/", $_REQUEST['name'])){
 $name=$_REQUEST['name'];
  //connect  to the database
 $db=mysql_connect  ("Name", "User",  "Password*") or die ('I cannot connect to the      database  because: ' . mysql_error());
 //-select  the database to use
 $mydb=mysql_select_db("Table Name");
  //-query  the database table
  $sql="SELECT  ID, CourseName, ExamBoard FROM subjects WHERE CourseName LIKE '%" . $name .  "%' ";
   //-run  the query against the mysql query function
   $result=mysql_query($sql);
    //-create  while loop and loop through result set
    while($row=mysql_fetch_array($result)){
      $CourseName  =$row['CourseName'];
      $ID=$row['ID'];
      $ExamBoard=$row['ExamBoard'];
  //-display the result of the array
  echo "<ul>\n";
  echo "<li>" . "<a  href=\"search.php?id=$ID\">"   .$CourseName . " " .  "</a></li>\n" ;
  echo  $ExamBoard . " " .  "</a>\n";
  echo "</ul>";
}
?>
于 2013-01-26T13:28:41.830 に答える
0

これをAJAXで実行するのか、それとも通常の画面更新で実行するのかを自問する必要があります。

通常の画面更新で(簡単な方法)

HTMLを取得して1つのファイル(HTMLfile.html)に配置しますPHPを取得して別のファイル(PHPCode.php)に配置します

HTMLファイルフォームは、アクション属性からPHPスクリプトを呼び出します。

PHPファイルが応答をレンダリングします。

ビューと制御アプリケーションをマッシュアップしないでください。

AJAXを使用する場合は、1つのスクリプトでこれを行う他の方法があります。

于 2013-01-26T12:40:16.503 に答える