2014-04-17 83 views
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); 
?> 
+0

在while循环中,每次都覆盖数组值 - 如果您有多个结果,并且如果只有一个结果,那么意义不大,那么使用循环没有任何意义。至于为什么其余部分没有按预期工作 - 你必须自己做一些调试,f.e.记录您尝试访问控制台的值。 – CBroe

回答

0

我认为你是错的传递参数,你的Ajax

应该像

data = {search: $("#search-form").val()};