I'm trying to use jQuery $.ajax() but I'm facing some difficulties.
Here's the textbox field that I want to use for POST:
<input name="url" class="url" type="text" >
Here's the code:
$.ajax({
type: "post",
url: "file.php",
data: $(this).serialize(),
success: function(data) { ...............
Now this is the file.php:
<?php
if( $_REQUEST['url'] )
{
$url = $_REQUEST['url'];
$url = file_get_contents($url);
// I would need now to return something here but not sure how??!!
}
?>
Now, my question is, how to return variables in this PHP code and use them in my code above, I mean in the success part of $.ajax(). Also if I want to perform some additional stuff on the $url variable, how to do it? How to return them? :/
If you want to return some variables/fields, the best way would be to echo a JSON string. Here is a small example:
PHP Code:
<?php
if( $_REQUEST['url'] )
{
$url = $_REQUEST['url'];
$url = file_get_contents($url);
$result['var1'] = 'something';
$result['var2'] = 500;
echo json_encode($result);
}
?>
JS Code:
$.ajax({
type: "post",
url: "file.php",
data: $(this).serialize(),
dataType: 'json', // maybe not needed? I do not know if jQuery autodetects it
success: function(data) {
// here you can use data.var1 and data.var2 to read the fields
}
});
You just print/echo your 'return' value.
file.php
<?php
if( $_REQUEST['url'] )
{
$url = $_REQUEST['url'];
$url = file_get_contents($url);
// I would need now to return something here but not sure how??!!
echo "something";
}
?>
Then in your JS:
$.ajax({
type: "post",
url: "file.php",
data: $(this).serialize(),
success: function(data) {
console.log(data); // "something"
}
});
As a side note. Your script looks like it accepts any URL and fetches it. It is possible to abuse scripts like that. Make sure you are aware that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With