如何使用Jquery从数据库中获取值?

时间:2015-12-09 07:34:02

标签: javascript php jquery mysql

<div  class="border padding10 margin-bottom2">
    <label>Institute Name</label>
    <div id="div-sec-qual-inst-id" class="input-control select" data-role="input-control">
        <select id="sec-qual-inst-id" data-placeholder="Enter institute name" style="width:350px;" name="user.secHighQualInst" class="chosen-select" tabindex="-1">
            <option value=""></option>                                  
        </select>
    </div>

我想在用户从选择框中选择“其他”时显示一个文本框,现在我的选项在数据库中。我尝试使用此代码

 $(function () {
    $("#sec-qual-inst-id").change(function () {
        if ($(this).val() == "#Others") {
             $("#other-sec-qual-inst-id").show();
        } else {
             $("#other-sec-qual-inst-id").hide();
        }
    });
});

但它无法正常使用selected.jquery.js。我需要改变这个吗?

    Handler.prototype.success = function(result, status, xhr){
        if(this.action == 'institutes'){
            institutes = result.campuses;
            $("#inst-id").append(getInstitutesHtml(institutes));            
            $("#inst-id").chosen();
        }else if(this.action == 'courses'){
            courses = result.courses;h
            $("#course-id").append(getCoursesHtml(courses));
            $("#course-id").chosen().change(function(that){
                var course = $("#course-id").val();
                var streams = {};
                var options = '<option value=""></option>';
                console.log(course);
                streams = courses[course];
                $.each(streams, function( index, value ) {
                    options = options+'<option value="'+value+'">'+value+'</option>'; 
                });
                $("#stream-id").html("");
                $("#stream-id").append(options);    
                if(flag){
                    $("#stream-id").chosen();
                    flag = false;
                }else{
                    $("#stream-id").trigger("chosen:updated");
                }
            });
        }else if(this.action == 'keyskills'){
            keyskills = result.keySkills;
            $("#keyskills-id").append(getKeyskillsHtml(keyskills));         
            $("#keyskills-id").chosen();
        }


    };

2 个答案:

答案 0 :(得分:1)

&#13;
&#13;
$('#sec-qual-inst-id').on('change', function() {
  if ($(this).val() == "others") {
  alert($(this).val());
  }else{
     alert($(this).val());
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div  class="border padding10 margin-bottom2">
                        <label>Institute Name</label>
                        <div id="div-sec-qual-inst-id" class="input-control select" data-role="input-control">
                            <select id="sec-qual-inst-id" data-placeholder="Enter institute name" style="width:350px;" name="user.secHighQualInst" class="chosen-select" tabindex="-1">
                                <option value="abc">abc</option>   
                              <option value="xyz">xyz</option> 
                              <option value="others">others</option> 
                            </select>
                        </div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

嗯......长期以来,您无法在JavaScript中从数据库中获取值。 (除非您使用像node.js这样的服务器端JavaScript)

一种方法是调用您通过XHR创建的服务器端点。传统的例子是......

此剧中的演员:

客户端(浏览器,JavaScript,CSS,HTML)

服务器端(LAMP堆栈,expressjs,Phoenix,Rails ......任何可以响应http请求,还有一些数据支持的东西)

第一幕:

  1. 用户点击“其他人”
  2. 在客户端,JavaScript正在侦听该事件
  3. JavaScript会向服务器上的端点创建XHR GET请求,例如“http://my-server.com/options
  4. 服务器设置为处理URL“/ options”,因此它通过查询数据库来获取选项来处理请求,并将它们作为响应返回(通常是JSON)
  5. 客户端JavaScript接收响应,并将有效负载强制转换为可设置为选择菜单的数据结构
  6. 客户端JavaScript然后将强制选项插入到菜单中,用户现在可以从他们的fancy db支持选项中进行选择。
  7. 在大多数情况下,这是网络的流程。关于有效载荷和传递机制是什么的排列,但舞蹈仍然是相同的。

    浏览器会尽力为您提供沙箱,并且出于很好的理由,您能想象是否有人可以访问您的数据库吗?糟糕!

    无论如何,不​​确定这是否有帮助,但你似乎有点迷失,或者我误解了你的问题。希望这可以作为指导。