5

我正在尝试使用 jQuery $.ajax() 但我遇到了一些困难。

这是我想用于 POST 的文本框字段:

<input name="url" class="url" type="text" >

这是代码:

$.ajax({
        type: "post",
        url: "file.php",
        data: $(this).serialize(),
        success: function(data) { ...............

现在这是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??!!
}
?>

现在,我的问题是,如何在这个 PHP 代码中返回变量并在我上面的代码中使用它们,我的意思是在 $.ajax() 的成功部分。另外,如果我想对 $url 变量执行一些额外的操作,该怎么做?如何退货?:/

4

2 回答 2

2

如果要返回一些变量/字段,最好的方法是回显 JSON 字符串。这是一个小例子:

PHP代码:

<?php
if( $_REQUEST['url'] )
{

   $url = $_REQUEST['url'];
   $url = file_get_contents($url);  

   $result['var1'] = 'something';
   $result['var2'] = 500;

   echo json_encode($result);
}
?>

JS代码:

$.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
    }
});
于 2013-06-01T14:19:42.383 回答
1

您只需打印/回显您的“返回”值。

文件.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";
}
?>

然后在你的 JS 中:

$.ajax({
    type: "post",
    url: "file.php",
    data: $(this).serialize(),
    success: function(data) {
        console.log(data); // "something"
    }
});

作为旁注。您的脚本看起来像是接受任何 URL 并获取它。有可能滥用这样的脚本。确保你意识到这一点。

于 2013-06-01T14:08:56.987 回答