2013-06-01 54 views
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变量上执行一些额外的东西,该怎么做?如何退货? :/

回答

1

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

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

然后在您的JS:

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

补充说明。您的脚本看起来像接受任何URL并提取它。有可能滥用这样的脚本。确保你知道这一点。

+0

而且是正确使用这样的事情:“$('一些文本框').writeText(data);“? –

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 
    } 
});