2015-04-16 58 views
0

我使用html web表單將輸入字段傳遞給使用AJAX的php文件,php文件處理數據並返回數據。數據以原始文本形式返回,但確實具有結構。不過,其中很多我不喜歡顯示。在回調的輸出中顯示某些數據(需要jQuery解決方案)

如何操縱數據以僅顯示某些信息。

[CN] => www.domain.com

[O] => ACME INC

通常,返回的信息被格式化:返回可能看起來像這樣

例如,數據像上面那樣。有沒有爲我做,說[CN]搜索和返回數據OM的同一行不包括人物,其餘=>

我應該只www.domain.com

結束的方式

- Ajax調用的樣本 -

$.ajax({ 
url: 'test.php', 
success: function(response) { 
$('result').html(response); 
+0

你想搜索的www.domain.com在JavaScript或php? –

+0

@黑洞,PHP可能是理想的,然後我可以從源頭上控制它。但要介意看到解決方案是如何運作的。 – user3436467

+0

@黑洞 - 之後有人認爲我的首選項是javascript/jquery,因爲那是數據最終要去的地方。 php是一個腳本文件,只會生成信息,並且可能會更復雜。 – user3436467

回答

1

一種方法是使用正則表達式

var ajaxResponse = "\r\n[CN] => www.domain.com\r\n\r\n[O] => ACME INC\r\n"; 
 
var regexParser = /^\[CN]\s*=>\s*(.*)$/m; 
 
var parseResult = regexParser.exec(ajaxResponse); 
 
alert(parseResult[1]);

+0

Thx對於你的幫助,但不知道它的工作權..看到小提琴http://jsfiddle.net/9csja9bx/它應該只是返回www.domain.com(當然這不是一個固定的域,所以這就是爲什麼我想由[CN] – user3436467

+0

調用它只返回「www.domain.com」,你在alert中看到的是正則表達式的結果,你在jsfiddle的Result窗格中看到全文,因爲你把它放在HTML我在模擬代碼片段中第一個變量的AJAX調用的返回值,我將更新代碼片段使其更清晰 –

+0

對不起,我再次嘗試了一次,並且看到了正確的窗口警報輸出。我還更新了我的帖子以顯示ajax調用樣本和響應,但是如何將整個返回的數據添加爲變量? – user3436467

1

這裏是你如何能做到這在PHP中:

<?php 
$data = 
    "[CN] => www.domain.com 
    [O] => ACME INC"; 

$lines = explode("\r\n",$data); 
foreach ($lines as $line){ 
    $parts = explode(" => ",$line); 
    if($parts[0]=="[CN]") 
     echo $parts[1]; 
} 

?> 

和Javascript:

要做到這一點在JavaScript
<script> 
    var data ="[CN] => www.domain.com\r\n"+ 
     "[O] => ACME INC"; 

    var lines = data.split("\n"); 

    for(var i=0;i<lines.length;i++){ 
     var parts = lines[i].split(" => "); 
     if(parts[0]=="[CN]") 
      alert(parts[1]); 
    } 

</script> 
+0

感謝您的努力。我也不明白地探索這個解決方案,但需要更多時間來考慮腳本。我會等待你的jscript解決方案 – user3436467

+0

@ user3436467我更新了答案,請檢查一下。 –

+0

我使用Ajax調用更新了我的帖子。你的代碼似乎在jsfiddle中工作,但我只是想確保我可以在我的ajax成功調用中使用它。如前所述,會有大量的數據返回,所以我想我需要設置整個響應。你的變量只有兩行,我需要整個響應作爲變量。 – user3436467