У меня есть прямой поиск в формате Ajax PHP MySQL, который в основном вытаскивает элементы питания из базы данных MySQL и представляет их в раскрывающемся списке, так как пользователи вводят в них поисковый запрос, по одному элементу на строку , так же, как поиск в Google.Ajax PHP Live Search - требуется второй шаг
Что мне нужно - это позволить пользователям щелкнуть по определенному элементу результата, и для этого, чтобы открыть его, чуть ниже щелчка по элементу, поле с несколькими вариантами перечисления переключателей с различными количествами этой конкретной пищи пункт. Затем пользователь сможет выбрать вариант количества и нажать «Отправить», чтобы сохранить их выбор.
Я хорошо знаю 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; } } }
PHP-скрипт, который смотрит в таблицу FOOD_DES в MySQL и приносит раздвинуть результаты населяющих выпадающий список продуктов:
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