2013-06-01 97 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 
    } 
});