2011-04-15 84 views
4

我想有以下的返回結果(search.php)並將結果張貼在原始頁面(index.php)中的div中。PHP + jQuery的+ Ajax表單提交相同的頁面

我已經把大部分的代碼放在一起了。它通過單擊提交表單並將其發送到PHP腳本。

我現在需要的是將PHP腳本的結果返回到原始頁面(index.php)。

這裏是我到目前爲止的代碼:(測試)

function submit() { 
    $(function() { 
     var id = "id"; 
     var dataString = 'id=' + id; 
     $.ajax({ 
      type: "POST", 
      url: "inc/search.php", 
      data: dataString, 
      success: function() { 
       goToByScroll("result"); 
       $('#result').html("<br><br><br><br><br><br><br><br><br><br>< 
            div class='center'><img src='img/loader.gif' /></div>").hide().fadeIn(2500, function() { 
       $('#result').html("Finished"); 
       }); 
      } 
     }); 
     return false; 
    }); 
} 

我的PHP文件是:

<?php function safe($value) 
{ 
    htmlentities($value, ENT_QUOTES, 'utf-8'); 
    return $value; 
} 
if (isset($_POST['id'])) { 
    $id = safe($_POST['id']); 
    echo ($id); 
} 
elseif (!isset($_POST['id'])) { 
    header('Location: error?id=notfound'); 
} ?> 

我想有結果從search.php(在這種情況下, 「ID」)張貼到#result,但我不知道如何:S

回答

7

我認爲你幾乎可以做到所有事情。你有success下回調函數需要它代表結果的爭論從search.php

 success: function(res) { 
      goToByScroll("result"); 
      $('#result').html("<br><br><br><br><br><br><br><br><br><br><div class='center'><img src='img/loader.gif' /></div>").hide().fadeIn(2500, function() { 
       $('#result').html(res + "<br /><br /> Finished"); 
      }); 
     } 

res的一切輸出是search.php。回聲,PHP標籤外的東西,等等。如果你自己加載search.php,你會看到任何東西。

我不知道你是否想'成'仍然存在。把它拿出來,如果你不。

+0

這是100%正常工作:)和最好的事情:我只需要複製並粘貼它!非常感謝! – Andrej 2011-04-15 20:09:02

+1

呵呵,我只給你添加了大約六個字符,你只能輸入它們。很高興它解決了 – 2011-04-15 22:53:45

2

添加一個參數到您的成功功能,例如:

success: function(param) { ... } 

param是一個字符串,它是服務器端腳本的所有輸出。你可以將它設置爲任何你想要的,並將其放置在某個元素內

$("#element").html(param); 
+0

嗨看守,感謝您的快速回復和你的時間!我剛剛包括我的PHP測試腳本。你能讓我知道我在上面的例子中添加什麼來在index.php上顯示我的結果嗎? – Andrej 2011-04-15 19:52:22

+0

他已經做到了。 – 2011-04-15 19:54:31

+0

無論你在你的服務器端回顯php腳本將被設置爲成功函數中的變量參數。只要回顯ID,如果找不到'echo(「ID Not Found」);'。然後在成功函數中做:'$(「#results」)。html(param);'這應該是有效的。 – 2011-04-15 19:55:26