Пахнет как AJAX, но я не уверен

ПОПРАВКИ:

Привет всем, спасибо за все ваши ответы. Я боролся, пытаясь вставить код в мою страницу, но мне все еще не повезло. Пока я возился, я не понимаю, почему что-то вроде приведенного ниже кода не сработает — я не могу заставить это работать, не обращайте внимания (!). Если это не возможно, я надеюсь, что кто-то может отклонить эту идею, чтобы сэкономить мое время, пытаясь это сделать:

<form name='Names' role='form' action='#' method='get' onchange='this.form.submit()'>
<select name="FirstName">
<option value="1">FirstName#1</option>
</select>
<select name="LastName">
<option value="1">LastName#1</option>
</select>
</form>

…могу ли я подобрать эти выборы в $_GET['FirstName'] а также $_GET['LastName'] и передать их в мой mysqli_query () для создания таблицы?


Чтобы не допустить распространения моего замешательства, я сначала хочу описать, что я пытаюсь сделать … Мне нужна веб-страница с таблицей с группой раскрывающихся списков, по которой я могу фильтровать — аналогично фильтрам Excel. Если вы знаете лучший способ сделать это, чем то, что я пытаюсь сделать ниже — пожалуйста, просветите меня !!

Теперь, чтобы описать лучший прогресс, который я сделал до сих пор:

У меня есть скрипт ниже (скопированный прямо из W3schools:

<script>
function showUser(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","entry_table.php?q="+str,true);
xmlhttp.send();
}
</script>

Вышеуказанный скрипт вызывается из раскрывающегося ниже списка, который заполняется с помощью PHP-цикла while из SQL-запроса:

<form>
<select name="Name" onchange="showUser(this.value)">
<option value="1">User#1</option>
</select>
</form>

Затем значение $ q передается на страницу PHP для отображения таблицы после генерации запроса SQL с помощью:

WHERE UserID="$q"

Это работает, но я обеспокоен тем, что это, похоже, изнурительный способ сделать это, особенно если я попытаюсь расширить запросы, включив в них 6-7 других выпадающих фильтров.

Заранее спасибо,
Бен

0

Решение

Вместо этого вы можете использовать функцию обратного вызова.

function getData(url, callback)
{
if (window.XMLHttpRequest)
{
//IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{ //IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
callback(xmlhttp.responseText);
}
}

xmlhttp.open("GET", url, true);
xmlhttp.send();
}

А затем сделайте вызов ajax, как это:

getData("entry_table.php?q="+str, function(data)
{
document.getElementById("txtHint").innerHTML=data;
});

Наружная функция

function doStuff(value) {
getData("entry_table.php?q="+value, function(data)
{
document.getElementById("txtHint").innerHTML=data;
});
}

а затем выберите будет

<select onchange="doStuff(this.value)">
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]