【发布时间】:2013-01-01 12:38:56
【问题描述】:
我正在使用 $.post 在 php foreach 循环内发布一些数据,例如变量、公司名称到控制器方法。在控制器中,我回显了一个使用传递的数据绘制的条形图。 现在在 foreach 循环中,我动态生成了一个 id,该 id 将传递给某个 '' 元素,我需要绘制这个在该 div 内传回的条形图。 我现在使用的代码贴在下面:
<?php
$id=0;
foreach($customer_companies as $data) {
$company_name=$data->CompanyName;
echo '<tr>
<script>function show_graph()
{
$.post("'.$base.'reports/single_bargraph/'.$company_name.'", {},function(result){
$("#'.$id.'").html(result);
});
}
</script>
<td class="tablecntntgry" id="'.$id.'" height="45">
<script type="text/javascript"> show_graph(); </script>
</td>
</tr>';
?>
假设,我为获取数据 $customer_companies 实现了分页,并且一次在页面中显示 3 个。现在我面临的问题是图形没有绘制在指定的 id 中。:( 有时,它会绘制在正确的 3 个 td 生成但有时 2/3 会绘制在同一个 td 重叠另一个:( 有人可以帮我解决这个问题吗?
【问题讨论】:
-
你的方法是不可接受的——你不应该这样写内联 JS。然后你重新定义并立即调用
show_graph()函数 - 没办法。 -
js 函数 show_graph() 处于循环中,因此无法工作
-
mvc 在地球上有视图是有原因的。为什么要在控制器方法中解析 js / html 的数据?只需推送该数据以查看并在那里解析它。改变使用这种模式的方法。
标签: php ajax loops foreach .post