HTML表单需要知道DB中有多少条记录

时间:2014-11-16 13:53:15

标签: php html ajax database onchange

我有一个HTML表单(PHP),它有一个或两个复选框,具体取决于用户在表单前面的下拉列表中选择的内容。问题是:

当用户从下拉列表中选择一个选项时,我需要访问SQL DB以查找适合查询的记录数量,如果超出限制,则只允许一个复选框,否则为2.

伪:

Select location dropdown (populated by PHP/SQL );
If onchange.location has less than 50 records 
    show/enable 2 type checkboxes
else 
    show/enable one type checkbox

从我完成的研究中开始:

  • 使用javascript访问服务器数据库是禁忌,
  • 无法在客户端使用PHP。

  • 1 个答案:

    答案 0 :(得分:0)

    当用户在下拉列表中选择用户时,showUser()事件会触发函数onchange

    HTML页面:

    <html>
    <head>
    <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","getuser.php?q="+str,true);
      xmlhttp.send();
    }
    </script>
    </head>
    <body>
    
    <form>
    <select name="users" onchange="showUser(this.value)">
    <option value="">Select a person:</option>
    <option value="1">Peter Griffin</option>
    <option value="2">Lois Griffin</option>
    <option value="3">Joseph Swanson</option>
    <option value="4">Glenn Quagmire</option>
    </select>
    </form>
    <br>
    <div id="txtHint"><b>Person info will be listed here.</b></div>
    
    </body>
    </html>
    

    AJAX请求已发送到getuser.php,因此您可以向您的数据库发出请求。

    getuser.php代码:

    <?php
    $q = intval($_GET['q']); // your sent parameter by AJAX
    
    // do your request and process all needed info from DB.
    
    ?php>
    

    您可以在this tutorial找到所有需要的信息。