我需要一些帮助!
为什么以下代码:
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的东西,我可以理解,但这是真正生成的源代码,完全是wierd。我知道这是一件简单的事情,我就是看不见,看起来很愚蠢——但嘿,我只想让它发挥作用:)
因为您正在评估函数buildDeleteForm()
,它向用户输出字符串,而不是简单地返回将其连接到表达式中。用单个return
语句替换buildDeleteForm()
中对print
的多个调用。
您执行的是打印而不是返回,这意味着它在连接表单元格组件之前打印表单,并且没有任何要连接的内容,因为函数不返回任何内容。改为这样做:
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;
}
我还更改了字符串,去掉了所有的反斜杠,使其可读性更强。
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>';
}