2009-12-16 2 views
0

Я хочу вызвать php с jquery ajax для выполнения некоторых вещей базы данных, а затем вернуть 2 списка ссылок. поэтому я должен передать эти два списка ссылок обратно в jquery, чтобы он мог отображать список 1 в левой части веб-страницы и список 2 в правой части.возвращает строку json с символами html?

Я создал списки в отдельных массивах, которые я отправил обратно в jquery с json_encode, но заметил, что он пропускает все символы html.

<a>dog</a> became <a>dog<\/a> 

поэтому, когда я отобразил список в html, они werent ссылки больше.

Как я могу сохранить html-коды в моих возвращенных массивах в jquery?

EDIT: это правильный путь, если вы хотите разделить данные с php, чтобы jquery отображал их в разных местах в html?

// list 1 
while($row = mysqli_fetch_assoc($saved_tags)) 
{ 
    $display_saved_tags[] = "<a id='showtag' href='answer.php?id=" . $row['id'] . "'>" . $row['name'] . "</a><br />"; 
} 

// list 2 
while($row = mysqli_fetch_assoc($related_tags)) 
{ 
    $display_related_tags[] = "<a id='showtag' href='answer.php?id=" . $row['id'] . "'>" . $row['name'] . "</a><br />"; 
} 

// return lists to jquery 
echo json_encode('display_saved_tags' => $display_saved_tags, 'display_related_tags' => $display_related_tags)); 
+0

Это будет вещь PHP. Можете ли вы опубликовать свой реальный PHP-код, чтобы люди могли видеть, как вы вызываете 'json_encode'? –

ответ

6

json_encode escape-символы непосредственно конфликтуют с выходом HTML. У меня была та же проблема, но я решил использовать альтернативное решение в то время. Я только что подумал, что вы могли бы, возможно, сделать это:

$data = new stdClass(); 
$data->html1 = base64_encode('<h1>html in here</h1>'); 
$data->html2 = base64_encode('<p><strong>more html</strong></p>'); 
echo json_encode($data); 

На интерфейсе:

callbackFunction(json) { 
    alert(base64_decode(json.html1)); 
    alert(base64_decode(json.html2)); 
} 

Вы должны были бы в JavaScript реализаций base64_decode и utf8_decode, которые можно найти по адресу: http://phpjs.org/functions/base64_decode:357

+0

Я думаю, что-то не так с кодом в base64 и utf8. он говорит, что функции не объявляются, когда я их использую. и когда я отлаживаю функции с netbeans, кажется, что do {} пока поврежден. удаление его делает объявленные функции ... у вас есть код на вашем компьютере? не знаю, как это исправить. – ajsie

+0

ничего не случилось с кодом, он работал, когда я вышел за пределы функции jquery document ready. THX это работает как шарм! – ajsie

0

использование может использовать ниже функции ип-избежать символов при чтении или отправки на браузере:

html_entity_decode('your response here'); 

Кроме того, потому что ваш используете json_encode, убедитесь, что вы не нуждаетесь в ниже в вашем коде:

json_decode 
+0

Я использовал это в файле php: echo html_entity_decode (json_encode ($ display_saved_tags)); но его странный, он все еще убегает до собака <\/a>. я вижу это в firebug. – ajsie

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