0
我已经使用HTML表单通过JavaScript发布到php文件,现在我需要将响应显示在同一个HTML页面上。我已经检查过萤火虫,我可以看到正确的回应,但JavaScript并未显示在页面上。JavaScript(Ajax)未显示php响应
HTML
<fieldset>
<legend>Search</legend>
<div class="form-group">
<input id="search-form" name="search" type="text" placeholder="Start searching here..." class="form-control input-md">
<button class="btn btn-lg btn-primary" id="searchButton" onclick="searchForm()">Search</button>
</div>
</fieldset>
</div>
<div id="searchname">
</div>
<div id="searchbarcode">
</div>
<div id="searchserial">
</div>
的JavaScript
function searchForm(){
var form = $(this);
var url = 'http://localhost/search/search.php';
var data = $("#search-form").val();
$.post(url, data)
.done(function(response){
if(response.success)
{
var name = response.data.name;
var barcode = response.data.barcode;
var serial = response.data.serial;
$("#searchname").html(name);
$("#searchbarcode").html(barcode);
$("#searchserial").html(serial);
}
else
{
}
});
}
PHP
<?php
mysql_connect ("localhost", "root","") or die (mysql_error());
mysql_select_db ("dissertation");
$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']['name'] = $row['name'];
$json['data']['barcode'] = $row['barcode'];
$json['data']['serial'] = $row['serial'];
}
}
else
{
$json['success'] = FALSE;
}
echo json_encode($json);
?>
在while循环中,每次都覆盖数组值 - 如果您有多个结果,并且如果只有一个结果,那么意义不大,那么使用循环没有任何意义。至于为什么其余部分没有按预期工作 - 你必须自己做一些调试,f.e.记录您尝试访问控制台的值。 – CBroe