2012-03-02 10 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だった場合、私は理解できます実際に生成されたソースコードは完全にwierdです。私はそれが私は見ることができないと愚かに見えるだろうという単純な何かを知っている - しかし、ちょっと私はちょうど事が仕事をしたい:)

答えて

2

あなたではなく、ユーザーに出力文字列関数buildDeleteForm()を、評価しているので単純によりもを返して、式に連結します。 printへの複数の呼び出しをbuildDeleteForm()に置き換えて、returnという単一のステートメントで置き換えます。

+0

Doh !!私は愚かに見えるだろうと言った参照してください:)今それは、時間が無駄になる時間:ありがとう! – Seer

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

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

死んだ権利と完璧な例私は1つ以上の回答を受け入れることができればいいので、ブザーで最速に行った - あなたの助けに感謝します! – Seer

関連する問題