Brauche mal hilfe "Autovervollständigung"

Begonnen von fatdom, 16 Mai 2009, 23:26:14

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

fatdom

Naben... wollte mir ein eingabefeld bauen das wenn ich einen teil des namen des users eingebe mir die als suchvorschlag unterhalb des eingabe feldes angezeigt bekomme... aber irgend wo hengt es... hat wer ne ahnung wo?

<?php
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

$module_name basename(dirname(__FILE__));
include(
"header.php");

pmxHeader::add_script(PMX_JAVASCRIPT_PATH 'jquery/jquery.js');


global 
$user_prefix;
        
        
                
// Is there a posted query string?
                
if(isset($_POST['queryString'])) {
                        
$queryString real_escape_string($_POST['queryString']);
                        
                        
// Is the string length greater than 0?
                        
                        
if(strlen($queryString) >0) {
                                
// Run the query: We use LIKE '$queryString%'
                                // The percentage sign is a wild-card, in my example of countries it works like this...
                                // $queryString = 'Uni';
                                // Returned data = 'United States, United Kindom';
                                
                                // YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
                                // eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10
                                
                                
$query sql_query("SELECT uname FROM ".$user_prefix."_users WHERE uname LIKE '$queryString%' LIMIT 10");
                                if(
$query) {
                                        
// While there are results loop through them - fetching an Object (i like PHP5 btw!).
                                        
while ($result $query ->sql_fetch_object()) {
                                                
// Format the results, im using <li> for the list, you can change it.
                                                // The onClick function fills the textbox with the result.
                                                
                                                // YOU MUST CHANGE: $result->value to $result->your_colum
                                       
echo '<li onClick="fill(\''.$result->uname.'\');">'.$result->uname.'</li>';
                               }
                                } else {
                                        echo 
'ERROR: There was a problem with the query.';
                                }
                        } else {
                                
// Dont do anything.
                        
// There is a queryString.
                
} else {
                        echo 
'There should be no direct access to this script!';
                }
        
?>

<script type="text/javascript">
        function lookup(inputString) {
                if(inputString.length == 0) {
                        // Hide the suggestion box.
                        $('#suggestions').hide();
                } else {
                        $.post({queryString: ""+inputString+""}, function(data){
                                if(data.length >0) {
                                        $('#suggestions').show();
                                        $('#autoSuggestionsList').html(data);
                                }
                        });
                }
        } // lookup
       
        function fill(thisValue) {
                $('#inputString').val(thisValue);
                setTimeout("$('#suggestions').hide();", 200);
        }
</script>

<style type="text/css">
        body {
                font-family: Helvetica;
                font-size: 11px;
                color: #000;
        }
       
        h3 {
                margin: 0px;
                padding: 0px;   
        }

        .suggestionsBox {
                position: relative;
                left: 30px;
                margin: 10px 0px 0px 0px;
                width: 200px;
                background-color: #212427;
                -moz-border-radius: 7px;
                -webkit-border-radius: 7px;
                border: 2px solid #000;
                color: #fff;
        }
       
        .suggestionList {
                margin: 0px;
                padding: 0px;
        }
       
        .suggestionList li {
               
                margin: 0px 0px 3px 0px;
                padding: 3px;
                cursor: pointer;
        }
       
        .suggestionList li:hover {
                background-color: #659CD8;
        }
</style>
<?php


?>
<div>
                <form>
                        <div>
                                Type your county:
                                <br />
                                <input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
                        </div>
                       
                        <div class="suggestionsBox" id="suggestions" style="display: none;">
                                <img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
                                <div class="suggestionList" id="autoSuggestionsList">
                                        &nbsp;
                                </div>
                        </div>
                </form>
        </div> <?php
        
include("footer.php");
?>


fatdom

moin moin... ich bin jetzt mitlerweile soweit das es rein theoretisch laufen sollte nur das problem bei der sache ist das ich keine daten ausgelesen bekomme weil die mainfile.php die direkte datenübertragung in datei verhindert... kann mir mal jemand ein lösungsvorschlag unterbreiten?

<?php
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
$module_name basename(dirname(__FILE__));

pmxHeader::add_script(PMX_JAVASCRIPT_PATH 'jquery/jquery.js');


$index 1;
global 
$prefix$pagetitle;
                if(isset(
$_POST['queryString'])) {
                        
$queryString mysql_real_escape_string($_POST['queryString']);
                        if(
strlen($queryString) >0) {
                                
$query sql_query("SELECT uname FROM ".$prefix."_users WHERE uname LIKE '$queryString%' LIMIT 10");
                                if(
$query) {
                                        while (
$result $query ->fetch_object()) {
                                    echo 
'<li onClick="fill('.$result->uname.');">'.$result->uname.'</li>';
                            }
                                } else {
                                        echo 
'ERROR: There was a problem with the query.';
                                }
                        } else {
                                
// Dont do anything.
                        
// There is a queryString.
                
} else {
                        echo 
'There should be no direct access to this script!';
                }
?>

<script type="text/javascript">
        function lookup(inputString) {
                if(inputString.length == 0) {
                        // Hide the suggestion box.
                        $('#suggestions').hide();
                } else {
                        $.post("modules/autoComplete/index.php", {queryString: ""+inputString+""}, function(data){
                                if(data.length >0) {
                                        $('#suggestions').show();
                                        $('#autoSuggestionsList').html(data);
                                }
                        });
                }
        }
       
        function fill(thisValue) {
                $('#inputString').val(thisValue);
                setTimeout("$('#suggestions').hide();", 200);
        }
</script>

<style type="text/css">
        body {
                font-family: Helvetica;
                font-size: 11px;
                color: #000;
        }
       
        h3 {
                margin: 0px;
                padding: 0px;   
        }

        .suggestionsBox {
                position: relative;
                left: 30px;
                margin: 10px 0px 0px 0px;
                width: 200px;
                background-color: #212427;
                -moz-border-radius: 7px;
                -webkit-border-radius: 7px;
                border: 2px solid #000;
                color: #fff;
        }
       
        .suggestionList {
                margin: 0px;
                padding: 0px;
        }
       
        .suggestionList li {
               
                margin: 0px 0px 3px 0px;
                padding: 3px;
                cursor: pointer;
        }
       
        .suggestionList li:hover {
                background-color: #659CD8;
        }
</style>
<?php include("header.php"); 

echo 
'<div> 
                <form action="modules.php?name=autoComplete"  method="post" name="usersuche">
                        <div>
                                Benutzername:
                                <br />
                                <input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
                        </div>
                        <div class="suggestionsBox" id="suggestions" style="display: none;">
                                <img src="modules/autoComplete/upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
                                <div class="suggestionList" id="autoSuggestionsList">
                                        &nbsp;
                                </div>
                        </div>
                </form> 
        </div>'
;
 include(
"footer.php");
 
?>