tags:

views:

28

answers:

4

i am building a php form with ajax and i am submitting the form variables to the same page where the form resides. my validating code looks like

if($valid){
    echo "<div id='retmsg'>Your message has been submitted successfully</div>";
}
else {
    echo "<div id='retmsg'>An error occured!</div>";
}

My ajax code

function form_submit() {
 $('#response').html('Loading...').fadeIn();
$.ajax({
    type: "POST",
url:  "<?php $_SERVER['PHP_SELF']; ?>",
data: "title=" + $('#title').val() + "&content=" + $('#contents').val(),
success: function(html){
var message = $("#retmsg").html(html);
alert(message);
  }

}); 
}

i need to alert the contents of div id "retmsg". But the alert shows me like "[Object Object]". Please help me...

A: 

Check

var message = $("#retmsg").value;
Salil
Hi, thanks for the reply. It shows "undefined". For your information i am getting the all contents in a variable "html" and then i am trying to filter out contents of #retmsg
devdarsh
A: 

Try

 alert(message.html())
ungarida
Thanks for your reply. it shows me "null"
devdarsh
I suggest you to use firebug to test your client side code. I did alert($("#someExistingID").html("a").html()) in some pages and it shows me "a"... probably you are losing some error in your code.
ungarida
A: 

take a look at jquery`s html(). if you want to retrieve the html content of a certain element you need to use html() function with no arguments.

so from this:

var message = $("#retmsg").html(html);

to this:

var message = $("#retmsg").html();    

The "[Object Object]" that the

$("#retmsg").html(html);

returns is actually a jquery object. You can find more on jquery chain

Alex Pacurar
but i am submitting the form the same page and the page already has the html elements(whole page with form elements), html() will return all contents again. Hope you understand
devdarsh
what i want to say is that in your code, you alert the jquery object, to alert the the contents of div id "retmsg" as you said you need to do :alert($("#retmsg").html());
Alex Pacurar
i think both ways are same because i get the same answer for also alert($("#retmsg").html())
devdarsh
alert($("#retmsg")[0].innerHTML);
Alex Pacurar
A: 

Thanks for all gentle mens who shared my issue. As i mentioned in my description, as i submitted the form to the same page, the page loads again with all components i used such as jQuery library and js files i.e the whole document. That's the problem. I simply used if(post){ } else { form validation } for the whole html content and got it solved.

devdarsh