ich ein seltsames Verhalten aus dem folgenden Code ..es beabsichtigtenPHP Warning: stristr(): Leere Nadel in Zeile
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript">
function autoComplete(str) {
debugger;
if (str) {
$.ajax({
type:'GET' ,
url:"index.php?q=" + str ,
success:function(response){
$("#autoComplete").html(response) ;
}
})
}
};
$(document).ready(function() {
$("#text").keypress(function() {
autoComplete($("#text").val())
});
})
</script>
</head>
<body>
<form action="index.php" >
<input type="text" id="text" />
<div id="autoComplete"></div>
</form>
<?php
if (isset($_GET["q"]))
{
$a[] = "Android";
$a[] = "B programming language";
$a[] = "C programming language";
$a[] = "D programming language";
$a[] = "euphoria";
$a[] = "F#";
$a[] = "GWT";
$a[] = "HTML5";
$a[] = "ibatis";
$a[] = "Java";
$a[] = "K programming language";
$a[] = "Lisp";
$a[] = "Microsoft technologies";
$a[] = "Networking";
$a[] = "Open Source";
$a[] = "Prototype";
$a[] = "QC";
$a[] = "Restful web services";
$a[] = "Scrum";
$a[] = "Testing";
$a[] = "UML";
$a[] = "VB Script";
$a[] = "Web Technologies";
$a[] = "Xerox Technology";
$a[] = "YQL";
$a[] = "ZOPL";
$ACText = $_GET["q"] ;
$ACBox = "";
foreach($a as $name)
{
if($name){
if (stristr($ACText , substr("$name" , 0 , strlen($ACText))))
{
$ACText = $name ;
$ACBox .="<p>$ACText</p>" ;
$ACText = "" ;
}
}
}
if($ACBox)
{
echo $ACBox ;
}
}
?>
</body>
</html>
auto-complete-Optionen für den Benutzer auf jedem Tastendruck zu geben, bei der Eingabe Text im Eingabeelement Das Formular erstellt unerwartet ein anderes Eingabeelement als das vorhandene und zeigt mehrere Warnmeldungen an ... Ich habe versucht, diese Warnmeldungen mithilfe von error_reporting (E_ERROR | E_PARSE) zu verbergen; .. aber der Browser wurde sehr langsam, nachdem ich das getan habe .... auch ich will wissen, warum ein anderes Eingabeelement angezeigt wird
etwas Hilfe? (die automatische Vervollständigung Optionen wurden erfolgreich gezeigt)
'error_reporting (E_ERROR | E_PARSE);' versteckt die Fehler nicht, es werden mehr Details/Fehler angezeigt. Sie können 'error_reporting (false) verwenden;' – Jer
@Tushar '$ name' ist definiert in' foreach ($ a als $ name) ' – Jer
es ist nur eine temporäre Variable für die foreach-Anweisung wie (für jeden var-Namen in der Array a) –