我正在尝试将我的上一篇文章拆分为更多部分。
我正在使用AJAX&数据库。目标是在视图中具有可单击的分区(按钮)。单击此div时,将调用AJAX查询并从我的数据库中检索5部电影并在视图中显示它们。我最挣扎的是如何设置新检索的数组,我在原始分区中使用jquery显示。
我正在尝试关注this w3schools 教程。我正在尝试根据教程中的方式重新修改我的原始样式。但我不知道如何将所有开头标签及其属性写入回声。
所以,如果这里的任何人都如此善良,并且可以告诉我如何重写至少其中一些,我会非常感激。所有以评论<!--fix-->
开头的行都是我需要重写的行。
编辑------------------------------------------- ---------
问题是我有一个CI视图页面。在该页面上是一个内容分部。我试图用使用xmlhttp请求检索的新内容替换此内容。请求调用与我的数据库建立连接的文件,运行查询,将结果存储在数组中,然后使用while循环回送已经拆分和样式化的结果。下面是jquery请求调用的文件的内容。
<?php
$con = mysqli_connect('localhost','root','root','obs2');
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"obs2");
$sql="SELECT * FROM user WHERE id > 5";
$result = mysqli_query($con,$sql);
echo "<table>";
while($row = mysqli_fetch_array($result))
{
<a style="display:block" href="<?php echo base_url('core/detail/'.$row->id) ?>">
<div id="suggested" onmouseover="" style="cursor: pointer;">
<div id="info">
<div id="info_center">
<p><b><?php echo $row->name ?></b></p>
</div>
</div>
<div class="mosaic-block fade">
<a href="<?php echo base_url('core/detail/'.$row->id) ?>" class="mosaic-overlay">
<div class="details">
<p><?php echo $row->summary ?></p>
</div>
</a>
<div class="mosaic-backdrop"><img src="http://puu.sh/5DSWj.jpg"></div>
</div>
<div id="info">
<div id="info_center">
<p>Rating: 7.7</p>
</div>
</div>
</div>
</a>
}
echo "</table>";
?>
因此,根据我在教程中的理解,我需要回显while循环内部的每一行。而我不知道的是如何重写已经存在的所有标签和php回声。我希望这更清楚。
-------------------------------------------- --------
原始代码
<table>
<?php foreach ($pages->result() as $row): ?>
<a style="display:block" href="<?php echo base_url('core/detail/'.$row->id) ?>">
<div id="suggested" onmouseover="" style="cursor: pointer;">
<div id="info">
<div id="info_center">
<p><b><?php echo $row->name ?></b></p>
</div>
</div>
<div class="mosaic-block fade">
<a href="<?php echo base_url('core/detail/'.$row->id) ?>" class="mosaic-overlay">
<div class="details">
<p><?php echo $row->summary ?></p>
</div>
</a>
<div class="mosaic-backdrop"><img src="http://puu.sh/5DSWj.jpg"></div>
</div>
<div id="info">
<div id="info_center">
<p>Rating: 7.7</p>
</div>
</div>
</div>
</a>
<?php endforeach; ?>
</table>
根据此
echo "<table>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo "</table>";
进步
echo "<table>";
while($row = mysqli_fetch_array($result))
{
<!--fix--><a style="display:block" href="<?php echo base_url('core/detail/'.$row->id) ?>">
<!--fix--><div id="suggested" onmouseover="" style="cursor: pointer;">
<!--fix--> <div id="info">
<!--fix--> <div id="info_center">
echo "<p>" . $row['name'] . "</p>";
echo "</div>";
echo "</div>";
<!--fix--> <div class="mosaic-block fade">
<!--fix--> <a href="<?php echo base_url('core/detail/'.$row->id) ?>" class="mosaic-overlay">
<!--fix--> <div class="details">
echo "<p>" . $row['summary'] . "</p>";
echo "</div>";
echo "</a>";
<!--fix--> <div class="mosaic-backdrop"><img src="http://puu.sh/5DSWj.jpg"></div>
echo "</div>";
<!--fix--> <div id="info">
<!--fix--> <div id="info_center">
<!--fix--> <p>Rating: 7.7</p>
echo "</div>";
echo "</div>";
echo "</div>";
echo "</a>";
}
echo "</table>";
答案 0 :(得分:1)
不要遵循该教程中使用的约定。你不仅不能相信W3schools所说的一切(他们甚至在他们的免责声明中说),但它的可读性更低。特别是当你有一个属性编辑器时,你可以从HTML中的代码突出显示中受益。如果你回复所有的HTML,那将会消失。除此之外,你只是弄乱你的代码,你必须逃避每一个引用。长话短说:不要这样做。 :)
关于html中值的回声,你可以缩短它:
<?php echo base_url('core/detail/'.$row->id) ?>
到此:
<?=base_url('core/detail/'.$row->id) ?>
<?=
只是一个简写。我认为它甚至可以在短开始标记(<?
)被禁用时起作用,但如果您希望您的代码独立于该设置,则应验证该标记。
此外,虽然我更喜欢{ .. }
样式的块,但我认为使用: ... endforeach
时与HTML结合使用会更加清晰。所以我也不会改变它。
如果你确实想要改变它,你仍然需要PHP结束标记,你现在已经忘记了。所以:
while($row = mysqli_fetch_array($result)): ?>
变为:
while($row = mysqli_fetch_array($result))
{ ?>
当然,如果您愿意,可以将{ ?>
或{
放在与while
语句相同的行中。
[编辑] 关于你的评论:PHP标签以外的所有内容都按原样输出。所以代码:
Hello <?php echo 'lovely'; ?> world <?php /* More code without output*/ ?>
结果是短语:
Hello lovely world
正如您所看到的,在PHP标记之外放置大块纯文本/ html通常要容易得多,并且只是简单地打开和关闭PHP标记以回显一些变量内容。
答案 1 :(得分:1)
您的原始代码是正确的方法。 w3schools版本是完全错误的,你应该避免这种情况。
如果您尝试描述不能使用原始代码的内容,那么每个人都可以更好地为您提供帮助。