Avatar billede ingeman Juniormester
20. april 2013 - 13:03 Der er 5 kommentarer og
1 løsning

Omskriv fra PHP til ASP/Access

<?


$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"]."|";
    }   
}
?>


Ovennævnte istedfor til ASP/Access
Avatar billede kjulius Novice
20. april 2013 - 19:31 #1
Nu er jeg ikke ekspert i hverken asp eller php, selvom jeg da har lavet et par enkle sider i begge, så det må blive et forsøg. Desuden er jeg slet ikke inde i brugen af regular expressions, så her har jeg lænet mig op ad et spørgsmål fra stackoverflow:

http://stackoverflow.com/questions/9184260/regex-in-classic-asp-to-find-out-if-the-url-has-a-particular-string?lq=1

http://msdn.microsoft.com/en-us/library/ms974570.aspx


<%
Option Explicit
Dim objConn, objRs, objRegex
Dim strLetters
Set objConn=Server.CreateObject("ADODB.Connection")
Set objRs=Server.CreateObject("ADODB.recordset")

objConn.Provider="Microsoft.Jet.OLEDB.4.0"    ' Definer den brugte driver
objConn.Open "c:/database/din_database.mdb"    ' 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, countryName FROM ajax_countries WHERE countryName LIKE '" & strLetters & "*'"
   
    While Not objRs.EOF
        Response.Write objRs!ID & "###" & objRs!countryName & "|"
        objRs.MoveNext
    Loop
    objRs.Close
    Set objRs = Nothing
End If
objConn.Close
Set objConn = Nothing

%>


Jeg har ingen mulighed for at teste validiteten af mit forslag, da jeg ikke har adgang til en IIS der er sat op til at kunne udføre klassisk ASP.
Avatar billede arne_v Ekspert
21. april 2013 - 03:40 #2
objRegex.Pattern = "/[^a-z0-9 ]/si"

skal nok vaere

objRegex.Pattern = "[^a-z0-9 ]"
Avatar billede ingeman Juniormester
21. april 2013 - 08:46 #3
/* 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
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.asp';    // 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();

    }

<%
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

%>

Jeg har fået rettet ASP/Access koden - hvem kan se om Javascript er rigtig - jeg får ikke noget tilbage
Avatar billede ingeman Juniormester
21. april 2013 - 08:46 #4
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<!-- Minus AutoDato -->
    <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="ajax.js"></script>
    <script type="text/javascript" src="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="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>

Html som kalder det hele
Avatar billede ingeman Juniormester
21. april 2013 - 12:22 #5
Jeg løst problemmet - du hjalp mig på vej - åbn svar kjulius
Avatar billede kjulius Novice
24. april 2013 - 15:22 #6
Svar... :-)
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
Kurser inden for grundlæggende programmering

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