0

Hi,

I'm new to JQuery/Ajax with PHP.
I'm calling a PHP file, and all the code runs well, except for the echo's.
The echo's are not showing and they were supposed to be showing .

Here are both my files(Which are very simple):
(x.php(main file) and sugere.php(the called file))
X.PHP

<html>

<head>

<script src="jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript" >
function sugere()
		{		


var tmp="";
$.ajax({
  type: "POST",
  url: "sugere.php",
  data: "name=John&location=Boston",
  success: function(msg){
    alert("-"+msg+"-");

  
  }

});


return false;
			}
		</script>

</head>

<body>
<form name="form1">
<?php
echo "hello";
?>
<input type="button" name="name" onclick="sugere();return false;">
</form>
</body>
</html>

sugere.php(the called file)

<?php
echo "<script LANGUAGE='javascript'>alert('uploading...');</script>";
echo "Something";
$con = mysql_connect('localhost', 'user_test', '');

mysql_select_db("test");

	$result = mysql_query("insert into user (nick) values('Jquery')" , $con);


mysql_close($con);


?>

Any ideas why the echo's are not working ?
Many thanks in advance!!

6
Contributors
16
Replies
18
Views
5 Years
Discussion Span
Last Post by diafol
0

are you sure your main file is a php file?

Hello Dschuett,

Well, i believe so. It works well, the main file 'x.php' works well in Xampp server.
I think, because i'm a newby. The problem here seems to be with JQuery, and not with PHP i think, because the file sugere.php alone works/runs well. Only when called by JQuery the echo's dont show.

Thank you for your interest and help

0

Leave off the return false

I have removed the return false.The echo's are still not showing data.


I wonder if in both of your computers it shows the echos, does it ?

Thank you very much for your help.

0

Are all your files in the same directory? Can I suggest you just have a simple echo "me"; to begin with, just to isolate the problem to js, even though the php files runs as a standalone.

<script src="jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript" >

if (jQuery) {  
     
   function sugere(){		
      alert('function opened');
      $.ajax({
        type: "POST",
        url: "sugere.php",
        data: "name=John&location=Boston",
        success: function(msg){
           alert("success");
           //alert("-"+msg+"-");
        }
      });
      alert('function ended');
   }

} else {
    alert("jQuery not loaded");
}
</script>

Just run that for now. If problem with loaded jquery - it'll tell you. If problem running function - no alert. If no success, you'll just get the open and ended alerts. If you get 'success' - should be OK, just go back to original alert.

Edited by diafol: n/a

0

Which echo is not displaying? "helo" or "something?

Hi,

The Echo's that arent working are the 'something' on the called file sugere.php, the hello works fine.
It only shows the echo 'something' when the program isn's called from JQuery.When it is called alone as pure php.

Many thanks.

0

Are all your files in the same directory?

Hi,

Yes, all files are in the same directory

Many thanks

0

Sorry, I edited my post while you were posting - see above...

0

Hi Ardav

The output is:

1-Function opened
2-Success
3-Function ended

it still doesnt show the echos
although every other code in sugere.php runs(except echo's)

Many thanks

Are all your files in the same directory? Can I suggest you just have a simple echo "me"; to begin with, just to isolate the problem to js, even though the php files runs as a standalone.

<script src="jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript" >

if (jQuery) {  
     
   function sugere(){		
      alert('function opened');
      $.ajax({
        type: "POST",
        url: "sugere.php",
        data: "name=John&location=Boston",
        success: function(msg){
           alert("success");
           //alert("-"+msg+"-");
        }
      });
      alert('function ended');
   }

} else {
    alert("jQuery not loaded");
}
</script>

Just run that for now. If problem with loaded jquery - it'll tell you. If problem running function - no alert. If no success, you'll just get the open and ended alerts. If you get 'success' - should be OK, just go back to original alert.

0

Ah. So everything it fine except for the echo.

You did the simple file:

echo "me";

I take it? And found that the return alert was blank or that you didn't get an alert?

There's a simpler syntax:

$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston"
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

from the JQuery site. You could try it, but I doubt it'll make much difference.

Edited by diafol: n/a

0

Hi,

Exactly.
The weird thing is that in the variable msg below. The msg variable returns the echos.(Sorry i forgot to mention)
Weird isnt it ? :

$.ajax({
type: "POST",
url: "sugere.php",
data: "name=John&location=Boston",
success: function(msg){
alert("success");
alert("-"+msg+"-");
}
});

Ah. So everything it fine except for the echo.

You did the simple file:

echo "me";

I take it? And found that the return alert was blank or that you didn't get an alert?

There's a simpler syntax:

$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston"
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

from the JQuery site. You could try it, but I doubt it'll make much difference.

0

The msg variable returns the echos.(Sorry i forgot to mention)

So it does work? I don't understand.

0

@iamthwee: Nice tutorial.

What the OP appears to be missing here, is that his PHP file is running in the background. The echo's will not display anything to the screen, but will be returned as data in the success function of the jQuery post. He really needs to read up on what callbacks are, and how to use them.

Edited by pritaeas: n/a

0

Sorry to hijack ardav...

No worries - it's an open forum. All posts appreciated. :)

What the OP appears to be missing here, is that his PHP file is running in the background. The echo's will not display anything to the screen, but will be returned as data in the success function of the jQuery post.

Is that what he was referring to? If so, I misunderstood. Yes, all echoed data will be returned to the msg var in the 'success' function, with no actual change to the display.

Edited by diafol: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.