Получить элемент из данных поста с помощью jquery - PullRequest
3 голосов
/ 10 июня 2011

Примечание: с помощью некоторых комментариев кажется, что это, скорее всего, невозможно

Я использую вызов jQuery ajax для отправки адреса электронной почты впод названием PHP-файл Я возвращаю сообщение об ошибке или об успешном завершении в зависимости от результата.

Теперь я хочу сообщить об этом результате после успешного выполнения моего jQuery $.post, проблема в том, что вызываемый PHP-файл содержит файл конфигурации, которыйтакже есть файл Javascript, поэтому мои данные будут выглядеть так:

<script type="text/javascript" src="x.js"></script>Message

Итак, я попробовал следующее:

Данные

<script type="text/javascript"> src="x.js"></script><p>Message</p>

И я попробовал две разные вещи в моем $.post:

Пост

$.post('ajax.php',function(data){

    alert($(data).find('p'));
    // this returns [object Object]

    alert($(data).find('p').html());
    // this returns null?

}

Тот факт, чтоalert($(data).find('p')); возвращает [object Object] приводит меня к мысли, что это работает, но тогда я не понимаю, почему .html() возвращает null.Если я проверяю data через firebug, он показывает именно то, что я напечатал выше.

Некоторая дополнительная информация

console.log(data)

возвращает

<script type="text/javascript"> src="x.js"></script><p>Message</p>


console.log($(data).find('p')) возвращает объект jQuery.


console.log($(data).find('p').length); возвращает 0


$('html').append(data);
console.log($('p').html());` 

возвращает Message как ожидается.

Окончательное редактирование

Я не думал о том факте, что $ в $(data).find('p'), вероятно, поэтому возвращает [object Object].

Теперь, когда я думаю об этом, кажется вполне очевидным, что это невозможночтобы сделать то, что я спрашиваю, потому что я пытаюсь использовать механизм выбора jQuery на строку.Вместо этого я изменю структуру своего документа, чтобы удалить ссылку JS из моего файла конфигурации.

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Чтобы использовать селекторы, вам сначала нужно, чтобы эта строка была частью дерева DOM. $ (data) не делает этого автоматически вам нужно добавить его к элементу (например, к телу) или заменить существующий.

onComplete: function(content) {
 content.find("#whatever"); // won't work
 $("#existingElement").html(content);
 $("#existingElement").find("#whatever"); // works
}
0 голосов
/ 10 июня 2011

просто повторить это в PHP

alert(<?php echo $_POST['variable']; ?>);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...