【问题标题】:PHP and JavascriptPHP 和 Javascript
【发布时间】:2011-06-07 16:37:19
【问题描述】:

我所拥有的是数据库中可用房间的下拉列表。就像教室 1,然后是其中的最大容量,所以看起来像这样,教室 1(28),教室 2(30)等等。此下拉列表上方是一个文本框,用于输入注册学生的数量,因此您可以输入任何数字。

我的问题是,如何消除与文本框中键入的数字不符的教室。例如,我输入 30,当我单击下拉列表时,教室 1(28) 不再存在,而是列出了教室 2(30)。

【问题讨论】:

  • 这是一个非常笼统的问题,表明您需要了解 AJAX。

标签: php javascript mysql sql


【解决方案1】:

首先,您需要在文本框上设置一个在其文本更改时触发的事件。

然后你需要遍历每个选项。如果文本框值大于解析出的 classrom 大小值,则隐藏该选项。

Jquery 在这里很有用。

在我看来,这不是 SQL 或 ajax 问题。您想要获取所有现有的教室并将它们作为选择提供,然后根据用户在文本框中输入的内容过滤选择。

jquery 看起来像这样

$('#Count_textbox').change(function(event)
{
  var countValue=$(this).val();

  //loops through each option
  $('#classroom_select').find('option').each(function(index)
  {
     //write parseOutValue to get the value out of the string of text
     var classroomValue=parseOutValue($(this).text());

     if( countValue > classroomValue )
     {
        $(this).attr("disabled","disabled");

     }
     else
     {
        $(this).attr("disabled","");
     }
  }
});

【讨论】:

  • 在客户端循环访问条目的另一种方法是向服务器发送一个带有输入数字的 AJAX 请求,服务器调用一个 php 方法,该方法在数据库中查询足够大的房间并发送新的选择返回。
  • 我有 jquery 但是我不知道如何显示让我给你看代码。 $roomarray = mysql_query("SELECT * FROM(SELECT *,CASE WHEN type = 'Classroom' THEN 1 WHEN type = '计算机实验室' THEN 2 WHEN type = 'Lecture Hall' THEN 3 WHEN type = 'Auditorium' THEN 4 END AS ClassTypeValue FROM rooms) t ORDER BY ClassTypeValue, maxppl, roomID"); echo "
  • { ?>
  • 感谢马特为您回答非常感谢,尽管您解释了我的情况,但仍然无法根据上一个文本区域中输入的值隐藏列表向下选项。文本字段。
  • 已编辑,但是,这样选项仍然可见。完全隐藏它们要么需要更多技巧,要么需要一种我不知道的简单方法。
猜你喜欢
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-18
  • 2010-09-18
  • 2011-04-11
  • 2011-01-20
相关资源
最近更新 更多