我需要一些帮助!
为什么以下代码:
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\"> </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的东西,但这是实际生成的源代码完全奇怪。我知道这是一件简单的事情,我看不到并且看起来很愚蠢 - 但是嘿,我只是想让事情发挥作用:)
答案 0 :(得分:2)
因为您正在评估函数buildDeleteForm()
,其中输出字符串给用户而不是简单地返回它将连接到表达式中。使用单个print
语句将buildDeleteForm()
中的多个调用替换为return
。
答案 1 :(得分: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;
}
我还更改了字符串以删除所有反斜杠,使其更具可读性。
答案 2 :(得分: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>';
}