2012-03-02 51 views
0

上帝我累了...我的大腦不工作,我需要一些幫助!爲什麼我的PHP生成的表格單元格產生這種奇怪的HTML

爲什麼下面的代碼:

function buildDeleteForm($deleteUrl,$searchArray) { 
print ("<form target=\"_self\" method=\"post\">\n"); 
print ("<input type=\"hidden\" name=\"delUrl\" value=\"" . $deleteUrl . "\" />\n"); 
print ("<input type=\"hidden\" name=\"url\" value=\"" . $searchArray . "\" />\n"); 
print ("<input type=\"submit\" name=\"delete\" value=\"delete\" />\n</form>\n"); 
} 


foreach ($urls as $url) { 
    $url = preg_replace('/\s+/', '', $url); 
    print("<tr><td>" . $url . "</td>"); 
    $response = sendRestRequest($url,$type); 
    $status = $response['http_code']; 
    if ($status == 200) { 
     // build the form 
     print("<td class=\"result\"><img src=\"200.png\"></td><td class=\"right\">" . buildDeleteForm($url,$urllist) . "</td></tr>"); 
    } elseif ($status == 404) { 
     print("<td class=\"result\"><img src=\"404.png\"></td><td class=\"right\">&nbsp</td></tr>"); 
    } else { 
     print("<td class=\"result\"><img src=\"error.png\"></td><td class=\"right\">" . $status . "</td></tr>"); 
    } 
} 

產生這種瘋狂的HTML

<tr> 
    <td> 
     http://someserver4017.site.com/resources/datacaches/xi50cache/xi50cache_RetailItemCommunication_se.LUT/sv_art_40101790 
    </td> 
    <form target="_self" method="post"> 
     <input type="hidden" name="delUrl" value="http://someserver4017.site.com/resources/datacaches/xi50cache/xi50cache_RetailItemCommunication_se.LUT/sv_art_40101790" /> 
     <input type="hidden" name="url" value="http://someserver4017.site.com/resources/datacaches/xi50cache/xi50cache_RetailItemCommunication_se.LUT/sv_art_40101790,http://someserver4018.site.com/resources/datacaches/xi50cache/xi50cache_RetailItemCommunication_se.LUT/sv_art_40101790,http://someserver4020.site.com/resources/datacaches/xi50cache/xi50cache_RetailItemCommunication_se.LUT/sv_art_40101790" /> 
     <input type="submit" name="delete" value="delete" /> 
    </form> 
    <td class="result"> 
     <img src="200.png"> 
    </td> 
    <td class="right"> 
    </td> 
</tr> 

它完全採取的形式出來的表格單元格的......我能理解,如果它只是一個CSS東西,但這是實際生成的源代碼完全奇怪。我知道這是一些簡單的,我只是不明白,並期待愚蠢 - 但嘿,我只是想東西的工作:)

回答

2

因爲你正在評估的功能buildDeleteForm(),這輸出一個字符串給用戶,而而不僅僅是返回它被連接成表達式。使用單個return語句將buildDeleteForm()中的多個呼叫替換爲print

+0

Doh !!看到我告訴你我會看起來很愚蠢:)現在,它完成了,浪費時間:)謝謝! – Seer 2012-03-02 15:27:03

1

您的buildDeleteForm函數正在生成輸出,而不是返回要串聯的字符串。

function buildDeleteForm($deleteUrl, $searchArray) 
{ 
    return ' 
     <form target="_self" method="post"> 
     <input type="hidden" name="delUrl" value="' . $deleteUrl . '" /> 
     <input type="hidden" name="url" value="' . $searchArray . '" /> 
     <input type="submit" name="delete" value="delete" /> 
     </form>'; 
} 
+0

死的權利和完美的例子希望我可以接受多個答案,所以去蜂鳴器最快 - 我感謝您的幫助! – Seer 2012-03-02 15:28:05

2

你是做印刷的,而不是回報,這意味着它串聯表格單元組件之前打印的形式並沒有任何拼接,因爲該函數返回什麼。這樣做,而不是:

function buildDeleteForm($deleteUrl,$searchArray) { 
    $html = ''; 
    $html .= '<form target="_self" method="post">'."\n"; 
    $html .= '<input type="hidden" name="delUrl" value="' . $deleteUrl . '" />'."\n"; 
    $html .= '<input type="hidden" name="url" value="' . $searchArray . '" />'."\n"; 
    $html .= '<input type="submit" name="delete" value="delete" />'."\n"; 
    $html .= '</form>'."\n"; 
    return $html; 
} 

我也改變了字符串帶走所有的反斜槓,使它更具可讀性。

+0

死的權利和完美的例子希望我可以接受多個答案,所以最快的蜂鳴器 - 我感謝您的幫助! – Seer 2012-03-02 15:28:21

相關問題