выбрать несколько динамических выпадающих окон с каждым выпадающим списком фильтра фильтровать вывод - PullRequest
0 голосов
/ 29 августа 2011

Я хочу, чтобы на странице одновременно было несколько перетаскивающих блоков с примерно тремя.

Когда я выбираю первое перетаскиваемое окно, оно должно отображать содержимое из базы данных в виде таблицы.Затем, когда я выбираю второй выпадающий список, он должен отфильтровать данные в таблице и показать таблицу и т. Д. В поле 3.

Я знаю, что это можно сделать в Ajax, поэтому я немного кодирую в php.Я сделал код, но есть проблема, что первый блок работает правильно, но когда я выбираю второй блок, мне нужно, чтобы параметр первого блока вместе со вторым отправлялся и т. Д. В третьем блоке выбора.

Пожалуйста, укажитепростой код для этого из базы данных для динамического выпадающего списка.Я пытаюсь этот код для просмотра комментариев пользователей.

Я использовал этот код http://www.w3schools.com/PHP/php_ajax_database.asp

Но в моем случае все исходит из базы данных, и выбранное значение должно фильтровать поле выбора 2а также показать таблицу.Затем при выборе 3 поля выбора оно будет отображаться в зависимости от первых двух выбранных полей.

Я пытаюсь, насколько это возможно, объяснить, чего я хочу.Я думаю, я ясно, что мне просто нужно.

Ищу вашей поддержки.код здесь

<html>
<head>
<script type="text/javascript">
function showUserM(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","getuser.php?q="+str,true);
xmlhttp.send();
}

function showUserI(str1,srt2)
{
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","getuser.php?q="+str1+"&i="+str2,true);
xmlhttp.send();
}
function showUserA(str1,str2,str3)
{
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","getuser.php?q="+str1+"&i="+str2+"&a="+str3,true);
xmlhttp.send();
}


</script>
</head>
<body>
<?php 
 $server = 'localhost';
$user = 'root';
$pass = '';
$dbase = 'pub_12wing';

$connect = mysql_connect($server, $user, $pass, $dbase);

mysql_select_db("publisher",$connect);

/ * здесь есть некоторая ошибка, при выборке данных в соответствии с $ sql_issue должна зависеть от выбранного запроса $ sql_magz и, следовательно, для последнего поля выбора, что нужно изменить * /

   $sql_magz = "select Distinct magz_id from magz_comment where pub_id = '2'";
    $sql_issue = "select Distinct issue_id from magz_comment where pub_id = '2'";
    $sql_artical = "select Distinct artical_id from magz_comment where pub_id = '2'";
    $result_magz = mysql_query($sql_magz);
    $result_issue = mysql_query($sql_issue);
    $result_artical = mysql_query($sql_artical);
    ?>
    <form>

<select name="mag_id" onChange="showUserM(document.getElementByID('mag_id').value)" id="mag_id">

<option value="" selected>Select a Magazine ID:</option>
<?php 
while ($row =mysql_fetch_array($result_magz)){
echo "<option value=".$row['magz_id'].">{$row['magz_id']}</option>";
}
?>
</select>



<select name="issue_id" onchange="showUserI(document.getElementByID('mag_id').value,document.getElementByID('issue_id').value)" id="issue_id">
<option value="" selected>Select a Issue ID:</option>
<?php 
while ($row =mysql_fetch_array($result_issue)){
echo "<option value=".$row['issue_id'].">{$row['issue_id']}</option>";
}
?>
</select>



<select name="artical_id" onchange="showUserA(document.getElementByID('mag_id').value,document.getElementByID('issue_id').value,document.getElementByID('artical_id').value)" id="artical_id">
<option value="" selected>Select a Artical ID:</option>
<?php 
while ($row =mysql_fetch_array($result_artical)){
echo "<option value=".$row['artical_id'].">{$row['artical_id']}</option>";
}
?>
</select>


</form> 
<br />
<div id="txtHint"><b>Magazine info will be listed here.</b></div>
<?php //mysql_close();?>
</body>
</html>

Имеет ли этот document.getElementByID ('mag_id'). Значение или нет то, что нужно было изменить.

Заранее спасибо.

1 Ответ

0 голосов
/ 02 сентября 2011

В первом поле со списком есть фиксированные значения? Если это так, вы генерируете это нормально в документе:

<select id="mag_id" onchange='PopulatesSecundBox(this)'>
<?php // prints database's data ?>
</select>

Тогда, если секунд и третья комбинация являются динамическими, вы можете сделать это:

<select id="issue_id" onchange='PopulatesThirdBox(this)'>
<!-- Yes, it's empty -->
</select>

<select id="artical_id">
<!-- Yes, it's empty too -->
</select>

Затем вы обрабатываете данные БД в событиях с помощью ajax и используете DOM , чтобы творить чудеса с опциями ... Это что-то вроде того, что вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...