2014-01-15 3 views
1

У меня возникли некоторые проблемы с моим кодом, я хочу, чтобы выполнить файл PHP всякий раз, когда я ввожу что-то, но он не работаетLivesearch PHP и Ajax

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    function getStates(value) { 
     $.post("search.php", {name:value},function(data) 
      $("#results").html(data); 
     }); 
    } 
</script> 
</head> 
<input type="text" onkeyup="getStates(this.value)"/> 
<br> 
<div id="results"></div> 
<body> 
</body> 
</html> 

PHP

<?php 
mysqli_connect("localhost", "#", "#") or die(mysqli_connect_errno()); 
mysql_select_db("#") or die(mysql_error()); 
$search = $_POST["name"]; 

$players = mysql_query("SELECT firstname FROM players WHERE firstname LIKE '%search%'"); 
while($player = mysql_fetch_array($players)) { 
    echo "<div>" . $players["firstname"] . "</div>"; 
} 

?>

+0

Что не работает? Проверьте свою консоль браузера, чтобы получить представление (Ctrl + Shirt + I в Chrome и Firefox). –

+1

Зачем вы объединяете 'mysqli_connect' и' mysql_select_db'? Вы хотите использовать mysql или mysqli? (Я надеюсь, что вы не будете использовать mysql) –

+0

Строка 9 вызывает синтаксическую ошибку, и я понятия не имею, почему – user3187651

ответ

1

Из того, что я могу видеть, вы должны изменить этот

'%search%' 

к

'%{$search}%' 

в

$players = mysql_query("SELECT firstname FROM players WHERE firstname LIKE '%search%'"); 

EDIT

@ user3187651 Предполагая, что вы все сделали правильно на стороне сервера. Изменение JavaScript для:

function getStates(value) { 
    $.post("search.php", {name:value},function(data){ 
     $("#results").html(data); 
    } 
    ); 
} 

Это должно избавиться от ошибки на стороне клиента.

+0

Я не думаю, что ваш ответ правильный – Aljie

+0

@Aljie Вместо использования переменной $ search он использовал термин «поиск» 'и да, это не может быть единственным правильным ответом, поскольку его код имеет много недостатков, как упоминал Айкан Яшит. – phpcoderx

0

Там что-то, что не хватает в вашем коде:

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> //ur getting the jquery via online 
<script> 
$(document).ready(function(){ 
    $("#textBoxId").change(function() //triggers when you change the value in your textbox 
    { 
     var value = $(this).val(); //gets the value of your textbox 
     $.post("search.php", {id:value},function(data) 
      $("#results").append(data); 
     }); 
    } 
}); 
</script> 
</head> 
<body> 
<input type="text" id="textBoxId"/> 
<br> 
<div id="results"></div> 
</body> 
</html> 

И в РНР:

<?php 
mysqli_connect("localhost", "#", "#") or die(mysqli_connect_errno()); 
mysql_select_db("#") or die(mysql_error()); 
$search = $_POST['id']; 
$returnData = ""; 
$players = mysql_query("SELECT firstname FROM players WHERE firstname LIKE '%search%'"); 
while($player = mysql_fetch_array($players)) { 
    $returnData .= "<div>" . $players["firstname"] . "</div>"; 
} 
echo $returnData; 
+0

Дает мне синтаксическую ошибку в строке 12 в моем блокноте, а хром-консоль говорит то же самое: Uncaught SyntaxError: Неожиданный идентификатор – user3187651

+0

повторите попытку моего обновленного кода. ваше текстовое поле не было внутри вашего тега тела, что не является правильной структурой. – Aljie

+0

Я наткнулся на этот ответ, ища что-то в Google. Так же, как OP находится в размещенном коде, вы смешиваете MySQL API с функциями mysqli_ и mysql_, которые не смешиваются друг с другом и должны быть переданы в OP. –

1

У вас не хватает {. Просто выполните:

function xyx(name) { 
    $.post("search.php", { name: value }, function(data) { 
     $("#results").html(data); 
    }); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^