2016-02-17 4 views
0

Ниже приведена часть ajax. Который возвращает одну строку, как это:Как добавить разрыв строки в json-выход

appleorangebanana

То, что я хотел бы достичь, это:

  • яблоко

  • оранжевый

  • банан

в виде ссылок. Извините, я все еще новичок в ajax & json. Спасибо, что заглянули в мой запрос.

<div class="col-md-4" id="testing"> 

    </div> 
<script> 
    $(document).ready(function(){ 

     $(".nav > a").click(function(e){ // see change here 
      e.preventDefault(); 
      $.post("test.php", 
       { 
        value:$(this).text().trim() 
       }, 
       function(data) 
       { 

        $("#testing").html(data.replace(/\"/g,""));//to remove quotes from the output 

       } 
      ); 

     }); 

    }); 

data.php

<?php require('../config/connection.php'); 

if(isset($_POST['value'])){ 

    $value = $_POST['value']; 
    $query = "SELECT DISTINCT product FROM prdct_categories WHERE class = '$value'"; 
    $result = mysqli_query($dbc, $query); 
    while($row = mysqli_fetch_assoc($result)){ 
     $rowvalue = $row['product']; 

     echo json_encode($rowvalue); 

    }  

} 
?> 
+0

Когда вы 'json_encode ('something')' результирующая строка также будет 'something'. И, чтобы отобразить его в новой строке в html, вам нужно будет также эхом перечеркнуть строку html после повторения значения. – frz3993

+0

Где я могу добавить здесь тег
? –

+0

Сразу после 'echo json_encode (...', хотя я не думаю, что вам нужна функция 'json_encode()'. – frz3993

ответ

0

Это может (или не может, в зависимости от вашего приложения) будет легче построить весь HTML в вашем внутреннем интерфейсе и кормить его прямо в ваш JS AJAX вызова , Предполагая, что вы готовы взять на себя этот путь, вы можете сделать что-то подобное в вашем бэкэнд сценарий:

// You MUST take care of a possible SQL injection! 
// There can be ANYTHING in the $value. 
$query = "SELECT DISTINCT product FROM prdct_categories WHERE class = '". mysql_real_escape_string($value) ."'"; 
$result = mysqli_query($dbc, $query); 

// Let's build a nice unordered list out of this. 
$html = '<ul>'; 
while($row = mysqli_fetch_assoc($result)){ 
    $clickable_url = ''; // something meaningful must be here, of course. 
    $html .= '<li>'; 
    $html .= '<a href="'. $clickable_url .'">'. $row['product'] .'</a>'; 
    $html .= '</li>'; 
} 
$html .= '</ul>'; 
echo $html; 

И в вашем AJAX-интерфейсе, это просто добавить этот новый HTML в свой DOM:

$.post("test.php", 
    { 
     value:$(this).text().trim() 
    }, 
    function(data) 
    { 
     $("#testing").html(data); 
    } 
); 
+0

Спасибо @Sergey, это то, что я искал –

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