Avatar billede ingeman Juniormester
20. april 2013 - 08:16 Der er 20 kommentarer og
1 løsning

asp/javascript/Access database

Jeg mangler et asp/javascript som kan søge hurtigt i min access database - efter samme fremgangsmåde som feks google boxen.
Avatar billede keysersoze Guru
20. april 2013 - 08:25 #1
Der er masser af eksempler hvis du søger på nettet efter "autosuggest" - du får nok ret svært ved at finde nogle med klassisk ASP som serverside, men da de fleste kører med XML eller JSON som datakilde gennem AJAX skal du bare sørge for at få omskrevet netop serverside-delen fra det eksempel du finder bedst.
Avatar billede ingeman Juniormester
20. april 2013 - 08:45 #2
nogen forslag fra nettet
Avatar billede ingeman Juniormester
20. april 2013 - 11:30 #4
--------ajax-list-countries.php

<?


$conn = mysql_connect("host","username","password");
mysql_select_db("dbName",$conn);

if(isset($_GET['getCountriesByLetters']) && isset($_GET['letters'])){
    $letters = $_GET['letters'];
    $letters = preg_replace("/[^a-z0-9 ]/si","",$letters);
    $res = mysql_query("select ID,countryName from ajax_countries where countryName like '".$letters."%'") or die(mysql_error());
    #echo "1###select ID,countryName from ajax_countries where countryName like '".$letters."%'|";
    while($inf = mysql_fetch_array($res)){
        echo $inf["ID"]."###".$inf["countryName"]."|";
    }   
}
?>

Omskrive det her til ASP/Access database ?

Her under Html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <title>Ajax - dynamic list</title>
   
    <style type="text/css">
   
    /* START CSS NEEDED ONLY IN DEMO */
    html{
        height:100%;
    }
    body{
        background-color:#E2EBED;
        font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;   
        width:100%;
        height:100%;       
        margin:0px;
        text-align:center;
    }
   
    #mainContainer{
        width:660px;
        margin:0 auto;
        text-align:left;
        height:100%;
        background-color:#FFF;
        border-left:3px double #000;
        border-right:3px double #000;
    }
    #formContent{
        padding:5px;
    }
    /* END CSS ONLY NEEDED IN DEMO */
   
   
    /* Big box with list of options */
    #ajax_listOfOptions{
        position:absolute;    /* Never change this one */
        width:175px;    /* Width of box */
        height:250px;    /* Height of box */
        overflow:auto;    /* Scrolling features */
        border:1px solid #317082;    /* Dark green border */
        background-color:#FFF;    /* White background color */
        text-align:left;
        font-size:0.9em;
        z-index:100;
    }
    #ajax_listOfOptions div{    /* General rule for both .optionDiv and .optionDivSelected */
        margin:1px;       
        padding:1px;
        cursor:pointer;
        font-size:0.9em;
    }
    #ajax_listOfOptions .optionDiv{    /* Div for each item in list */
       
    }
    #ajax_listOfOptions .optionDivSelected{ /* Selected item in the list */
        background-color:#317082;
        color:#FFF;
    }
    #ajax_listOfOptions_iframe{
        background-color:#F00;
        position:absolute;
        z-index:5;
    }
   
    form{
        display:inline;
    }
   
    </style>
    <script type="text/javascript" src="js/ajax.js"></script>
    <script type="text/javascript" src="js/ajax-dynamic-list.js">
    /************************************************************************************************************
    (C) www.dhtmlgoodies.com, April 2006
   
    This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.   
   
    Terms of use:
    You are free to use this script as long as the copyright message is kept intact. However, you may not
    redistribute, sell or repost it without our permission.
   
    Thank you!
   
    www.dhtmlgoodies.com
    Alf Magne Kalleland
   
    ************************************************************************************************************/   
    </script>
</head>
<body>
<div id="mainContainer">
    <div id="header">
        <img src="/images/heading3.gif">
    </div>
    <div id="formContent">
        <form>
        <fieldset>
            <legend>AJAX(Asyncron Javascript And XML) - list options</legend>
            <table border="0">
                <tr>
                    <td><label for="country">Country: </label></td>
                    <td><input type="text" id="country" name="country" value="" onkeyup="ajax_showOptions(this,'getCountriesByLetters',event)">
                    <input type="hidden" id="country_hidden" name="country_ID"><!-- THE ID OF the country will be inserted into this hidden input --></td>
                </tr>   
                <tr>
                    <td><label for="otherField">Other info:</label></td>   
                    <td><input type="text" id="otherField" name="otherField" value=""></td>   
                </tr>
                <tr>
                    <td>Gender:</td>
                    <td><select name="gender">
                        <option value="F">Female</option>
                        <option value="M">Male</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td><label for="country">Country2: </label></td>
                    <td><input type="text" id="country2" name="country2" value="" onkeyup="ajax_showOptions(this,'getCountriesByLetters',event)"></td>
                </tr>   
            </table>       
            <p>Type in something in the textfield "country" or "country2"</p>
        </fieldset>   
       
        </form>
    </div>
</div>

</body>
</html>

-------- ajax.js
/* Simple AJAX Code-Kit (SACK) v1.6.1 */
/* ©2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence,
  see documentation or authors website for more details */

function sack(file) {
    this.xmlhttp = null;

    this.resetData = function() {
        this.method = "POST";
          this.queryStringSeparator = "?";
        this.argumentSeparator = "&";
        this.URLString = "";
        this.encodeURIString = true;
          this.execute = false;
          this.element = null;
        this.elementObj = null;
        this.requestFile = file;
        this.vars = new Object();
        this.responseStatus = new Array(2);
      };

    this.resetFunctions = function() {
          this.onLoading = function() { };
          this.onLoaded = function() { };
          this.onInteractive = function() { };
          this.onCompletion = function() { };
          this.onError = function() { };
        this.onFail = function() { };
    };

    this.reset = function() {
        this.resetFunctions();
        this.resetData();
    };

    this.createAJAX = function() {
        try {
            this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e1) {
            try {
                this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) {
                this.xmlhttp = null;
            }
        }

        if (! this.xmlhttp) {
            if (typeof XMLHttpRequest != "undefined") {
                this.xmlhttp = new XMLHttpRequest();
            } else {
                this.failed = true;
            }
        }
    };

    this.setVar = function(name, value){
        this.vars[name] = Array(value, false);
    };

    this.encVar = function(name, value, returnvars) {
        if (true == returnvars) {
            return Array(encodeURIComponent(name), encodeURIComponent(value));
        } else {
            this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
        }
    }

    this.processURLString = function(string, encode) {
        encoded = encodeURIComponent(this.argumentSeparator);
        regexp = new RegExp(this.argumentSeparator + "|" + encoded);
        varArray = string.split(regexp);
        for (i = 0; i < varArray.length; i++){
            urlVars = varArray[i].split("=");
            if (true == encode){
                this.encVar(urlVars[0], urlVars[1]);
            } else {
                this.setVar(urlVars[0], urlVars[1]);
            }
        }
    }

    this.createURLString = function(urlstring) {
        if (this.encodeURIString && this.URLString.length) {
            this.processURLString(this.URLString, true);
        }

        if (urlstring) {
            if (this.URLString.length) {
                this.URLString += this.argumentSeparator + urlstring;
            } else {
                this.URLString = urlstring;
            }
        }

        // prevents caching of URLString
        this.setVar("rndval", new Date().getTime());

        urlstringtemp = new Array();
        for (key in this.vars) {
            if (false == this.vars[key][1] && true == this.encodeURIString) {
                encoded = this.encVar(key, this.vars[key][0], true);
                delete this.vars[key];
                this.vars[encoded[0]] = Array(encoded[1], true);
                key = encoded[0];
            }

            urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
        }
        if (urlstring){
            this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
        } else {
            this.URLString += urlstringtemp.join(this.argumentSeparator);
        }
    }

    this.runResponse = function() {
        eval(this.response);
    }

    this.runAJAX = function(urlstring) {
        if (this.failed) {
            this.onFail();
        } else {
            this.createURLString(urlstring);
            if (this.element) {
                this.elementObj = document.getElementById(this.element);
            }
            if (this.xmlhttp) {
                var self = this;
                if (this.method == "GET") {
                    totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
                    this.xmlhttp.open(this.method, totalurlstring, true);
                } else {
                    this.xmlhttp.open(this.method, this.requestFile, true);
                    try {
                        this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
                    } catch (e) { }
                }

                this.xmlhttp.onreadystatechange = function() {
                    switch (self.xmlhttp.readyState) {
                        case 1:
                            self.onLoading();
                            break;
                        case 2:
                            self.onLoaded();
                            break;
                        case 3:
                            self.onInteractive();
                            break;
                        case 4:
                            self.response = self.xmlhttp.responseText;
                            self.responseXML = self.xmlhttp.responseXML;
                            self.responseStatus[0] = self.xmlhttp.status;
                            self.responseStatus[1] = self.xmlhttp.statusText;

                            if (self.execute) {
                                self.runResponse();
                            }

                            if (self.elementObj) {
                                elemNodeName = self.elementObj.nodeName;
                                elemNodeName.toLowerCase();
                                if (elemNodeName == "input"
                                || elemNodeName == "select"
                                || elemNodeName == "option"
                                || elemNodeName == "textarea") {
                                    self.elementObj.value = self.response;
                                } else {
                                    self.elementObj.innerHTML = self.response;
                                }
                            }
                            if (self.responseStatus[0] == "200") {
                                self.onCompletion();
                            } else {
                                self.onError();
                            }

                            self.URLString = "";
                            break;
                    }
                };

                this.xmlhttp.send(this.URLString);
            }
        }
    };

    this.reset();
    this.createAJAX();
}

---------ajax-dynamic-list.js

/************************************************************************************************************
Ajax dynamic list
Copyright (C) 2006  DTHMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.

Alf Magne Kalleland, April 2006
Owner of DHTMLgoodies.com


************************************************************************************************************/

    var ajaxBox_offsetX = 0;
    var ajaxBox_offsetY = 0;
    var ajax_list_externalFile = 'ajax-list-countries.php';    // Path to external file
    var minimumLettersBeforeLookup = 1;    // Number of letters entered before a lookup is performed.

    var ajax_list_objects = new Array();
    var ajax_list_cachedLists = new Array();
    var ajax_list_activeInput = false;
    var ajax_list_activeItem;
    var ajax_list_optionDivFirstItem = false;
    var ajax_list_currentLetters = new Array();
    var ajax_optionDiv = false;
    var ajax_optionDiv_iframe = false;

    var ajax_list_MSIE = false;
    if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0)ajax_list_MSIE=true;

    var currentListIndex = 0;

    function ajax_getTopPos(inputObj)
    {

      var returnValue = inputObj.offsetTop;
      while((inputObj = inputObj.offsetParent) != null){
          returnValue += inputObj.offsetTop;
      }
      return returnValue;
    }
    function ajax_list_cancelEvent()
    {
        return false;
    }

    function ajax_getLeftPos(inputObj)
    {
      var returnValue = inputObj.offsetLeft;
      while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;

      return returnValue;
    }

    function ajax_option_setValue(e,inputObj)
    {
        if(!inputObj)inputObj=this;
        var tmpValue = inputObj.innerHTML;
        if(ajax_list_MSIE)tmpValue = inputObj.innerText;else tmpValue = inputObj.textContent;
        if(!tmpValue)tmpValue = inputObj.innerHTML;
        ajax_list_activeInput.value = tmpValue;
        if(document.getElementById(ajax_list_activeInput.name + '_hidden'))document.getElementById(ajax_list_activeInput.name + '_hidden').value = inputObj.id;

          //var f1=setTimeout('ajax_list_activeInput.focus()',1);
          //var f2=setTimeout('ajax_list_activeInput.value = ajax_list_activeInput.value',1);

        ajax_options_hide();
    }

    function ajax_options_hide()
    {
        if(ajax_optionDiv)ajax_optionDiv.style.display='none';
        if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='none';
    }

    function ajax_options_rollOverActiveItem(item,fromKeyBoard)
    {
        if(ajax_list_activeItem)ajax_list_activeItem.className='optionDiv';
        item.className='optionDivSelected';
        ajax_list_activeItem = item;

        if(fromKeyBoard){
            if(ajax_list_activeItem.offsetTop>ajax_optionDiv.offsetHeight){
                ajax_optionDiv.scrollTop = ajax_list_activeItem.offsetTop - ajax_optionDiv.offsetHeight + ajax_list_activeItem.offsetHeight + 2 ;
            }
            if(ajax_list_activeItem.offsetTop<ajax_optionDiv.scrollTop)
            {
                ajax_optionDiv.scrollTop = 0;
            }
        }
    }

    function ajax_option_list_buildList(letters,paramToExternalFile)
    {

        ajax_optionDiv.innerHTML = '';
        ajax_list_activeItem = false;
        if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length<=1){
            ajax_options_hide();
            return;
        }



        ajax_list_optionDivFirstItem = false;
        var optionsAdded = false;
        for(var no=0;no<ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length;no++){
            if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].length==0)continue;
            optionsAdded = true;
            var div = document.createElement('DIV');
            var items = ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].split(/###/gi);

            if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length==1 && ajax_list_activeInput.value == items[0]){
                ajax_options_hide();
                return;
            }


            div.innerHTML = items[items.length-1];
            div.id = items[0];
            div.className='optionDiv';
            div.onmouseover = function(){ ajax_options_rollOverActiveItem(this,false) }
            div.onclick = ajax_option_setValue;
            if(!ajax_list_optionDivFirstItem)ajax_list_optionDivFirstItem = div;
            ajax_optionDiv.appendChild(div);
        }
        if(optionsAdded){
            ajax_optionDiv.style.display='block';
            if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='';
            ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true);
        }

    }

    function ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,whichIndex)
    {
        if(whichIndex!=currentListIndex)return;
        var letters = inputObj.value;
        var content = ajax_list_objects[ajaxIndex].response;
        var elements = content.split('|');
        ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()] = elements;
        ajax_option_list_buildList(letters,paramToExternalFile);

    }

    function ajax_option_resize(inputObj)
    {
        ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
        ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px';
        if(ajax_optionDiv_iframe){
            ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left;
            ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top;
        }

    }

    function ajax_showOptions(inputObj,paramToExternalFile,e)
    {
        if(e.keyCode==13 || e.keyCode==9)return;
        if(ajax_list_currentLetters[inputObj.name]==inputObj.value)return;
        if(!ajax_list_cachedLists[paramToExternalFile])ajax_list_cachedLists[paramToExternalFile] = new Array();
        ajax_list_currentLetters[inputObj.name] = inputObj.value;
        if(!ajax_optionDiv){
            ajax_optionDiv = document.createElement('DIV');
            ajax_optionDiv.id = 'ajax_listOfOptions';
            document.body.appendChild(ajax_optionDiv);

            if(ajax_list_MSIE){
                ajax_optionDiv_iframe = document.createElement('IFRAME');
                ajax_optionDiv_iframe.border='0';
                ajax_optionDiv_iframe.style.width = ajax_optionDiv.clientWidth + 'px';
                ajax_optionDiv_iframe.style.height = ajax_optionDiv.clientHeight + 'px';
                ajax_optionDiv_iframe.id = 'ajax_listOfOptions_iframe';

                document.body.appendChild(ajax_optionDiv_iframe);
            }

            var allInputs = document.getElementsByTagName('INPUT');
            for(var no=0;no<allInputs.length;no++){
                if(!allInputs[no].onkeyup)allInputs[no].onfocus = ajax_options_hide;
            }
            var allSelects = document.getElementsByTagName('SELECT');
            for(var no=0;no<allSelects.length;no++){
                allSelects[no].onfocus = ajax_options_hide;
            }

            var oldonkeydown=document.body.onkeydown;
            if(typeof oldonkeydown!='function'){
                document.body.onkeydown=ajax_option_keyNavigation;
            }else{
                document.body.onkeydown=function(){
                    oldonkeydown();
                ajax_option_keyNavigation() ;}
            }
            var oldonresize=document.body.onresize;
            if(typeof oldonresize!='function'){
                document.body.onresize=function() {ajax_option_resize(inputObj); };
            }else{
                document.body.onresize=function(){oldonresize();
                ajax_option_resize(inputObj) ;}
            }

        }

        if(inputObj.value.length<minimumLettersBeforeLookup){
            ajax_options_hide();
            return;
        }


        ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
        ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px';
        if(ajax_optionDiv_iframe){
            ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left;
            ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top;
        }

        ajax_list_activeInput = inputObj;
        ajax_optionDiv.onselectstart =  ajax_list_cancelEvent;
        currentListIndex++;
        if(ajax_list_cachedLists[paramToExternalFile][inputObj.value.toLowerCase()]){
            ajax_option_list_buildList(inputObj.value,paramToExternalFile,currentListIndex);
        }else{
            var tmpIndex=currentListIndex/1;
            ajax_optionDiv.innerHTML = '';
            var ajaxIndex = ajax_list_objects.length;
            ajax_list_objects[ajaxIndex] = new sack();
            var url = ajax_list_externalFile + '?' + paramToExternalFile + '=1&letters=' + inputObj.value.replace(" ","+");
            ajax_list_objects[ajaxIndex].requestFile = url;    // Specifying which file to get
            ajax_list_objects[ajaxIndex].onCompletion = function(){ ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,tmpIndex); };    // Specify function that will be executed after file has been found
            ajax_list_objects[ajaxIndex].runAJAX();        // Execute AJAX function
        }


    }

    function ajax_option_keyNavigation(e)
    {
        if(document.all)e = event;

        if(!ajax_optionDiv)return;
        if(ajax_optionDiv.style.display=='none')return;

        if(e.keyCode==38){    // Up arrow
            if(!ajax_list_activeItem)return;
            if(ajax_list_activeItem && !ajax_list_activeItem.previousSibling)return;
            ajax_options_rollOverActiveItem(ajax_list_activeItem.previousSibling,true);
        }

        if(e.keyCode==40){    // Down arrow
            if(!ajax_list_activeItem){
                ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true);
            }else{
                if(!ajax_list_activeItem.nextSibling)return;
                ajax_options_rollOverActiveItem(ajax_list_activeItem.nextSibling,true);
            }
        }

        if(e.keyCode==13 || e.keyCode==9){    // Enter key or tab key
            if(ajax_list_activeItem && ajax_list_activeItem.className=='optionDivSelected')ajax_option_setValue(false,ajax_list_activeItem);
            if(e.keyCode==13)return false; else return true;
        }
        if(e.keyCode==27){    // Escape key
            ajax_options_hide();
        }
    }


    document.documentElement.onclick = autoHideList;

    function autoHideList(e)
    {
        if(document.all)e = event;

        if (e.target) source = e.target;
            else if (e.srcElement) source = e.srcElement;
            if (source.nodeType == 3) // defeat Safari bug
                source = source.parentNode;
        if(source.tagName.toLowerCase()!='input' && source.tagName.toLowerCase()!='textarea')ajax_options_hide();
    }


Omskrive det her til ASP/Access database ?
Avatar billede keysersoze Guru
20. april 2013 - 15:06 #5
Har du i det hele taget selv forsøgt?
Avatar billede ingeman Juniormester
20. april 2013 - 15:25 #6
Ja det har jeg - kan også sagtens skrive både alt til kald til
databaseen i access - men da det bliver kaldt fra javascript og
ingen kendskab har til PHP - udfra det ved jeg ikke hvad der skal returneres til - bare en enklet lille fejl gør jo at lortet ikke virker.
Avatar billede ingeman Juniormester
20. april 2013 - 15:28 #7
Alt hvad jeg her medgivet HTML/JS filer er for at forstå sammenhængen - det er jo formodentlig kun PHP delen som skal omskrivers ?
Avatar billede keysersoze Guru
20. april 2013 - 15:58 #8
Det er korrekt - sådan er det når man programmerer. Men så giv os den kode du har forsøgt med og fortæl hvilken fejl der eventuelt sker.
Avatar billede ingeman Juniormester
20. april 2013 - 16:55 #9
<%
Dim rs, loConn,StrSQL
     
      set rs = server.CreateObject("ADODB.Recordset")
    Set loConn = CreateObject("ADODB.Connection")
    loConn.Open("DSN=MinDatabasefil")
   
    StrSQL="SELECT  *  from Kartotek  Where Navn Like  '%"& Kommer fra Javascript & "%'  order By navn  asc"
    RS.open strSQL, loConn ,3,3
   
      do until RS.eof
          '    Response.Write  returner til javascript
          RS.movenext
      loop

    loConn.Close    
   
    set rs = nothing
    Set loConn = nothing
%>

Er ikke nået til at få noget afviklet endnu
Avatar billede ingeman Juniormester
20. april 2013 - 20:26 #10
<%
Option Explicit
Dim objConn, objRs, objRegex
Dim strLetters
Set objConn=Server.CreateObject("ADODB.Connection")
Set objRs=Server.CreateObject("ADODB.recordset")

objConn.Open(DBFilnavn)    ' Definer den brugte Access database

If Request.QueryString("getCountriesByLetters") <> "" And Request.QueryString("letters") <> "" Then
    strLetters = Request.QueryString("letters")
   
    Set objRegex = New Regex
    objRegex.IgnoreCase = True
    objRegex.Pattern = "/[^a-z0-9 ]/si"
    strLetters = objRegex.Replace(strLetters,"")
    Set objRegex = Nothing

    objRs.Open "SELECT ID, Navn FROM Kartotek WHERE Navn LIKE '" & strLetters & "*'"
   
    While Not objRs.EOF
        Response.Write objRs!ID & "###" & objRs!Navn & "|"
        objRs.MoveNext
    Loop
    objRs.Close
    Set objRs = Nothing
End If
objConn.Close
Set objConn = Nothing

%>

Jeg får ingen fejl - men heller ingen udtræk
Avatar billede keysersoze Guru
20. april 2013 - 21:24 #11
Benyt din developer toolbar - http://www.web-dev.dk/post/2012/06/17/Bliv-en-hurtigere-webudvikler-med-browservc3a6rktc3b8jer.aspx - eller Fiddler og se om der fx sker en "skjult" fejl i din console eller om du fx henviser forkert til siden.
Avatar billede ingeman Juniormester
21. april 2013 - 08:39 #12
<!-- #include file="DBFilnavn.asp" -->
<%
Dim objConn, objRs, StrSql
Dim strLetters
Set objConn=Server.CreateObject("ADODB.Connection")
Set objRs=Server.CreateObject("ADODB.recordset")

objConn.Open(DBFilnavn)    ' Definer den brugte Access database

If Request.QueryString("getCountriesByLetters") <> "" And Request.QueryString("letters") <> "" Then
    strLetters = Request.QueryString("letters")
   
    StrSql= "SELECT ID, Navn FROM Kartotek WHERE Navn LIKE '" & strLetters & "*'"
      oBjRS.open strSQL,  objConn ,3,3
     
    do until objRs.EOF
       
        Response.Write objrs.fields("id") & "###" & objrs.fields("navn") & "|"
             
        objRs.MoveNext
    loop
   
    objRs.Close
    Set objRs = Nothing
End If
objConn.Close
Set objConn = Nothing

%>

Har nu fået rettet fejl med Fiddler - men får stadig ikke noget tilbage.
Avatar billede keysersoze Guru
21. april 2013 - 09:03 #13
hvordan kommer din url til at se ud?

Husk iøvrigt at tage højde for SQL Injections - som din kode er lige nu er din kode hullet som en si.
Avatar billede ingeman Juniormester
21. april 2013 - 09:31 #14
Avatar billede keysersoze Guru
21. april 2013 - 10:33 #15
Så må du prøve at kalde URL'en direkte i browseren og så udskrive nogle hjælpevariabler undervejs - altså fx så du kan se om den kommer ind i din if-sætning osv.
Avatar billede ingeman Juniormester
21. april 2013 - 11:46 #16
StrSql= "SELECT ID, Navn FROM Kartotek WHERE Navn  LIKE '%" & strLetters &"%' Order by Navn asc "

Der var fej i den her - nu begynder det at spille - jeg får noget tilbage - LIKE afleverer jo alt som indeholder strLetters - men jeg skal kun have det som indeholder strLetters i NAVN fra venstre ?
Avatar billede ingeman Juniormester
21. april 2013 - 12:01 #17
StrSql= "SELECT ID, Navn FROM Kartotek WHERE left(Navn,'"&len(strLetters)&"')= '" & strLetters &"' Order by Navn asc "

jeg har løst det
Avatar billede ingeman Juniormester
21. april 2013 - 12:20 #18
Tak for hjælpen - åbn svar
Avatar billede keysersoze Guru
21. april 2013 - 15:15 #19
Eller LIKE '" & strLetters & "%'

Og glem som sagt heller ikke SQL Injections; LIKE '%" & strLetters &"%'
Avatar billede ingeman Juniormester
21. april 2013 - 17:08 #20
Hvad er SQL Injections - og hvordan sikrer man sig imod det ?
Avatar billede keysersoze Guru
21. april 2013 - 22:55 #21
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
40 min siden Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows