0

MySQLデータを使用していくつかのフォームフィールドにデータを入力しようとしています。

テキストフィールドに値を入力し、フィールドの値を使用してデータベースを検索し、ページを離れることなく残りのフォームフィールドに結果を入力できるようにしたいと思います。

任意のガイダンスをいただければ幸いです。

4

3 に答える 3

1

jQuery postを使用して、データベースからデータを取得します

入力のあるページ:

$.post("pageWhereYouGetData.php", {valueYouWantToQueryTheDBWith: $("input.info").val()}, function(data){
    var dataArray = data.join(", ");
    //do stuff with inputs here like: $("input.moreInfo").val(dataArray[0]) which would set the value of your input to the value of the row 'row1' from the database
});

pageWhereYouGetData.php:

$results = mysql_fetch_assoc(mysql_query("SELECT row1, row2, row3 FROM table WHERE rowName = '" . mysql_real_escape_string($_POST['valueYouWantToQueryTheDBWith']) . "'"));

$data = array($results['row1'], $results['row2'], $results['row3']);
echo explode(", ", $data);

ここでは、必要なデータで満たされた配列を作成し、それを文字列に変換してから、エコーアウトします。javascript側では、それを配列に変換し直し(ajaxを介して変数を送信することはできず、値のみを送信できるため)、配列を使用して入力を設定します。

ページをリロードせずにデータを送信し、文字列に変換し、データを取得したら元に戻し、希望どおりに使用するという考え方です。

于 2012-07-07T15:25:13.030 に答える
1

そのためにAJAXを使用できます-入力送信ボタンを使用してphpファイルを起動し、データベースを検索します。

これでMySQL検索が始まります。データベースの全文検索を使用することをお勧めします(これに関する多くのドキュメントはhttp://dev.mysql.com/doc/refman/5.0/en/fulltext-search.htmlにあります)。または、検索がそれほど複雑でない場合は、SELECT*WHEREを使用する必要があります。次に、見つけたデータをエコーアウトします。

AJAXリクエストは、エコーされたものを返します。次に、JQueryを使用して、好きな要素をデータで埋めることができます。

于 2012-07-07T15:30:09.643 に答える
0

見つけたこのスクリプトを変更することになりました。同じページにはありませんが、必要な機能を実行します。ユーザーが値を入力してフィールドを終了すると、値がテーブルと照合されて一致するかどうかがチェックされます。次に、フィールドの値を使用して結果を呼び出し元のページに返します。

これは、フォーム要素とともにページに配置されます。

function showData(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","get_listing_data.php?q="+str,true);
xmlhttp.send();
}


<input type="text" name="mls_id" id="mls_id" onchange="showData(this.value)">

<div id="txtHint"></div> // this is where the populated fields appear

これは、クエリを実行し、結果を最初のファイルに返すファイルです-最初のファイルから呼び出されます。

$link = mysql_connect("localhost","name","pw") or die ("No database connection -     please try again later.");
$db = mysql_select_db("db", $link); 

$q=$_GET["q"];

$sql="SELECT * FROM table WHERE MLS_LISTING_ID = '$q'";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
  {
 echo "<input type=\"text\" name=\"agent_name\" id=\"agent_name\" value=" . $row    ['MLS_AGENT_NAME'] . " readonly=\"readonly\">";
 echo "<input type=\"text\" name=\"sale_price\" id=\"last_name\" value=" . $row['SALE_PRICE'] . " readonly=\"readonly\">";
 echo "<input type=\"text\" name=\"street_number\" id=\"last_name\" value=" . $row['STREET_NUMBER'] . " readonly=\"readonly\">";
 echo "<input type=\"text\" name=\"street_name\" id=\"last_name\" value=" . $row['STREET_NAME'] . " readonly=\"readonly\">";
  }
于 2012-07-07T17:29:40.337 に答える