Ajax PHP MySQLのライブ検索では、基本的にMySQLデータベースから食品アイテムを取り出し、ドロップダウンリストに表示します。ユーザーが検索語句を1行に1つずつ入力するとGoogleでの検索と同じように。Ajax PHPライブ検索 - 第2ステップが必要
私が必要とするのは、ユーザーが特定の結果アイテムをクリックして開くことができるようにする方法です。クリックしたアイテムのすぐ下に、その特定の食品のさまざまな量のオプションをリストするラジオボタンがいくつかあります項目。ユーザーは、金額オプションを選択して「提出」をクリックして選択内容を保存することができます。
私はPHPとMySQL、HTMLをよく知っていますが、JSは少し難題です。あなたの答えが詳しく記述されていれば感謝します。
HTML検索フォーム::/検索フォームワット同じページ
<input type="text" size="30" name="food_name" id="q" value="" onkeyup="sendRequest(this.value);" autocomplete="off"/>
AJAXコード:
以下は、私は、この時点で持っているものといくつかのコードスニペットです
function createRequestObject() { var req; if(window.XMLHttpRequest){ // Firefox, Safari, Opera... req = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer 5+ req = new ActiveXObject("Microsoft.XMLHTTP"); } else { alert('Problem creating the XMLHttpRequest object'); } return req; } // Make the XMLHttpRequest object var http = createRequestObject(); function sendRequest(q) { // Open PHP script for requests http.open('get', 'checkfoods.php?q='+q); http.onreadystatechange = handleResponse; http.send(null); } function handleResponse() { if(http.readyState == 4 && http.status == 200){ // Text returned FROM the PHP script var response = http.responseText; if(response) { // UPDATE ajaxTest content document.getElementById("searchResults").innerHTML = response; } } }
FOOD_DESという名前のテーブルを探してMySQLに持ち込むPHPスクリプト背中食品のドロップダウンリストに移入する結果:
include 'my-food-dtabase.php'; $searchQry = isset($_GET['q']) ? mysql_real_escape_string($_GET['q']) : false; if ($searchQry) { $searchString = $_GET['q']; $sql = mysql_query("SELECT NDB_No, FdGrp_Cd, Long_Desc FROM FOOD_DES WHERE Long_Desc LIKE '%".$_GET['q']."%' ORDER BY Long_Desc ASC"); if($searchString != NULL) { while($row = mysql_fetch_assoc($sql)) { echo "<span id=foodlist><a href=calorie-counter-serving.php?NDB_No=".$row['NDB_No'].">".$row['Long_Desc']."</a><br /></span>"; } } if(mysql_num_rows($sql) == 0) { echo "<span class=medium_white>Food item not found. Try a different name or keyword.</span>"; } }
http://www.cs.arizona.edu/~mccann/indent_c.html#One –
この上で作業するときに、AJAXリクエスト/レスポンスを見ることができていることを確認してください - それは非常に役立ちます。 Chromeにはこれがネイティブであるか、Firefox + Firebugが良好です。 – halfer