2015-11-27 91 views
0

我有一個php腳本來檢查域是否可用。它迴應結果,並有4個可能的輸出;通過ajax顯示php輸出

  1. 不可
  2. 被註冊,但可以轉移
  3. 不適用於轉移

我想用ajax發送域和tld到腳本如何在我的html中回顯腳本的輸出? 從我的理解是,如果php給出結果,可以顯示一條消息,但不能提取結果並顯示在我的html表單下。

所以基本上這是目前發生的事情:

form -> $domain $tld -> AJAX -> GET -> domaincheck.php -> $dom = $_GET['domain']; 
$tld = $_GET['tld']; -> $domain = $dom . $tld; -> TransIP API -> $result 

$結果得到由這片PHP

try 
    { 
     $availability = Transip_DomainService::checkAvailability($domain); 
     switch($availability) 
     { 
     //check availability 
      case Transip_DomainService::AVAILABILITY_INYOURACCOUNT: 
       $result = htmlspecialchars($domain) 
          . ' is not available.'; 
      break; 

      case Transip_DomainService::AVAILABILITY_UNAVAILABLE: 
       $result = htmlspecialchars($domain) 
          . ' is not available for transfer.'; 
      break; 

      case Transip_DomainService::AVAILABILITY_FREE: 
       $result = htmlspecialchars($domain) 
          . ' is available for registration.'; 
      break; 


      case Transip_DomainService::AVAILABILITY_NOTFREE: 
       $result = htmlspecialchars($domain) 
          . ' is registered. If you are the owner, 
            you could transfer it.'; 
      break; 
     } 
    } 
    catch(SoapFault $e) 
    { 
    //error 
     $result = 'An error occurred: ' . htmlspecialchars($e->getMessage()); 
    } 
} 
else 
{ 
    $domain = ''; 
    $result = ''; 
} 

的,我絕對沒有編程天才,更上一個UI設計器中設置疏鬆。因此,任何幫助表示讚賞:)

回答

2

這是完全可能的,而且都發生在網上的這些日子。

基本上你需要做的,是有PHP腳本輸出$結果是你想要的,然後讓AJAX把它和將其放入HTML DOM。這裏有一個例子讓你開始:

在PHP腳本的末尾,添加類似:

echo json_encode(['result'=>$result]); 
die(); 

這需要你的$ result變量,並與「結果」作爲其索引把它放在一個數組。然後以JSON格式對其進行編碼,將其打印出來,然後殺死腳本,因爲它已完成。 (注意:除了json編碼外,還有其他的方法可以做到這一點,但我覺得它是最簡單和最具可擴展性的解決方案)。

然後,有一些JavaScript這樣的:

$.ajax({ 
    url: "your_url/with_the_php_script.php", 
    type: "GET", 
    dataType: "json", 
    data: { domain: "yummypizza.com", tld: "the_moon" }, 
    success: function(data){ 
     if('results' in data){ 
      $('#html_element_for_the_results').html(data.results); 
     } 
     else{ 
      alert("Uh oh, no results!"); 
     } 
    }, 
    error: function(data){ 
     alert("Uh oh! AJAX error!"); 
    } 
}) 

你可能會想保存在一個功能和觸發它的形式提交或按下按鈕,但是你打算爲用戶提交數據。無論如何,你有幾個組件:你有你要發送給它的url,你發送的數據(看看它是一個包含域和tld屬性的對象,PHP腳本中的兩個$ _GET變量,所以這是它發送的數據)。然後,當它完成併成功時,它會成功完成該功能。

使用jQuery,您可以使用$(元素)的.html(「的東西在這裏」)格式,以取代頁面上的東西的innerHTML內容。因此,將適當的ID放在想要顯示$結果的任何位置,並在成功函數中將其選中。