Как предотвратить включение содержимого заголовка html в результаты публикации jquery? - PullRequest
1 голос
/ 20 июня 2009

Я использую функцию jquery "$ .post ()" , чтобы добавить запись списка в базу данных mysql в php.

$(document).ready(function(){
    $(".theSubmit").click(function(){

        var content = $("textarea").val();
        var listn = $("input[name='list_name']").val();
        var groupn = $("input[name='group_name']").val();

        $.post("/secret_url/lists/add_to_list",
            {list_item: content, list_name: listn, group_name:groupn},
            function(html){$("li:last").after(html);});
        });
   });

Все это прекрасно работает, и новый элемент списка добавляется на страницу. Однако, используя firebug, я замечаю, что я получаю эту дополнительную информацию заголовка html (см. Ниже), а также мои возвращенные данные. Информация, которую я хочу отобразить на странице, находится внутри "li" ниже. Все от типа документа после того, как я хотел бы удалить или запретить его включение, так как он становится видимым внутри jeditable редактирования на месте ввода также на странице.

<li>
   <input type="checkbox" name="row" class="checkbox">
   <input type ="hidden" name="id" value="60" class="contentId">
   <div id="60" class="editable">test Item 4</div>
</li>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
    "http://www.w3.org/TR/html/strict.dtd">
<html>
    <head>
    <title>Checklists</title>
    <link  href="http://checklist.css" rel="stylesheet" type="text/css" />  
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="jquery-ui-1.7.custom.min.js"></script>
    <script type="text/javascript" src="jquery.jeditable.js"></scrip >
    </head>
    <body>

Могу ли я удалить содержимое заголовка html или запретить его отправку обратно вместе с соответствующей информацией?

Ответы [ 3 ]

1 голос
/ 20 июня 2009

Просто добавьте

exit;

оператор в файле, в который вы выводите данные своего ответа. Сразу после того, как вы вывели все, что хотите, в качестве тела ответа.

упрощенный пример

<?php .... do something do process request ... ?>
    <li>
       <input type="checkbox" name="row" class="checkbox">
       <input type ="hidden" name="id" value="60" class="contentId">
       <div id="60" class="editable">test Item 4</div>
    </li>
<?php exit; ?>
0 голосов
/ 20 июня 2009

Я бы использовал $ .postJSON вместо $ .post, потому что, как и в вашем примере, я всегда забывал указать тип данных, которые сервер будет отвечать на ваш запрос. Тип JSON поможет вам визуализировать данные так же хорошо, как вам нравится форматировать их на стороне клиента.

0 голосов
/ 20 июня 2009

Что вы используете? ASP.NET, PHP?

Вы должны указать своему серверу прекратить обработку запроса после того, как вы написали желаемый ответ. Похоже, что сервер продолжает добавлять нормальный контент GET / POST для этого URL. (как если бы вы отправили форму без AJAX)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...