开发者

Retrieve element from post data with jquery

Note: With the help of some comments it seems like this is most likely not possible

I'm using a jQuery ajax call to send an e-mail address, in the called PHP file I return an error or success message depending on the outcome.

Now I want to alert this outcome after my jQuery $.post is successful, the problem is that the called PHP file includes a config file that also has a Javascript file, so my data will look like this:

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

So I tried the following:

Data

<script type="text/javascript"> src="x.js开发者_如何学Python"></script><p>Message</p>

And I tried two different things within my $.post:

Post

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

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

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

}

The fact that alert($(data).find('p')); returns [object Object] leads me to think it is working, but then I don't understand why .html() returns null. If I check data through firebug it shows exactly what I typed above.

Some extra information

console.log(data)

returns

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


console.log($(data).find('p')) returns a jQuery object.


console.log($(data).find('p').length); returns 0


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

returns Message as expected.

Final edit

I didn't think about the fact that the $ in $(data).find('p') is probably why it's returning [object Object].

Now that I think about it, it seems quite obvious it's impossible to do what I am asking because I am trying to use jQuery's selector engine on a string. I'll change my document structure to remove the JS reference from my config file instead.


To use selectors you first need that string to be part of the DOM tree. $(data) does not do it automatically, you need to append it to an element (like body) or to replace an existing one.

onComplete: function(content) {
 content.find("#whatever"); // won't work
 $("#existingElement").html(content);
 $("#existingElement").find("#whatever"); // works
}


just echo it out in PHP

alert(<?php echo $_POST['variable']; ?>);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜