Я создал следующую форму поиска, ошибок нет, но вместо того, чтобы показывать строки, похожие на поисковый запрос, я просто получаю весь список строк из выбранной таблицы в базе данных, и я не Конечно, почему?
HTML
<div class="form-horizontal">
<fieldset>
<legend>Search</legend>
<div class="form-horizontal">
<div class="col-sm-10">
<input id="search-form" name="search" type="text" placeholder="Start searching here..." class="form-control">
</div>
<div class="col-sm-2">
<button class="btn btn-primary" id="searchButton" onclick="searchForm()">Search</button>
</div>
</div>
</fieldset>
</div>
<br/>
<table class="table" id="search-results" style="display:none;">
<thead>
<tr>
<th>Name</th>
<th>Serial</th>
<th>Barcode</th>
</tr>
</thead>
<tbody id="search-body">
</tbody>
</table>
</div>
JS
function searchForm(){
var d = $("#search-form").val();
if(d != "") {
$.ajax({
type: 'POST',
url: 'http://www.test.co.uk/test/search.php',
crossDomain: true,
data: {data: d},
dataType: 'json',
async: false,
success: function (response){
if (response.success)
{
$('#search-results').show();
$.each(response.data, function( index, item ) {
$('#search-body').append('<tr><td>' + item.name + '</td><td>' + item.barcode + '</td><td>' + item.serial + '</tr>');
});
}
else {
console.log("fail");
}
},
});
}
else {
alert("You must enter a term");
}
return false;
}
PHP
<?php
mysql_connect ("localhost", "root","") or die (mysql_error());
mysql_select_db ("test");
$search = isset($_POST['search']) ? $_POST['search'] : '';
$sql = mysql_query("select * from asset where
name like '%$search%' or
barcode like '%$search%' or
serial like '%$search%' ");
$num = mysql_num_rows($sql);
$json = array();
if($num > 0)
{
$json['success'] = TRUE;
while ($row = mysql_fetch_array($sql))
{
$json['data'][]=array('name'=>$row['name'], 'barcode'=>$row['barcode'], 'serial'=>$row['serial']);
}
}
else
{
$json['success'] = FALSE;
}
echo json_encode($json);
?>
Измените код jquery
data:{search: d}
Объяснение: Вы отправляли поисковый запрос через ajax
с data
имени. Но в php вы проверяете
isset($_post['search'])
Либо вы меняете свой код jquery, либо меняете php
isset($_post['data'])
Измените имя участника в JQuery из данных в Search.
data: {search: d},
Потому что вы отправляете "данные" участника и ищете "поиск".