我有一个表单,用户将在那里输入参考编号以检查他们的查询状态:
示例:用户将导航到此网页:http://www.cdreporting.co.uk/ajax/search2.html
然后他们输入他们的参考文献:" 1 "或" 2" ," 3"等等......无论他们分配了什么号码 然后显示一条简短的记录。
但我无法格式化显示的数据。我希望参考编号有不同的颜色,希望创建换行符,下划线电子邮件地址。但我不确定如何用我当前的.php代码
来做到这一点如何编辑电子邮件等各个字段?所以我可以改变字体等..?仅使用"参考" php代码中声明的字段:
<?php
$q=$_GET["q"];
$xmlDoc = new DOMDocument();
$xmlDoc->load("cd_catalog.xml");
$x=$xmlDoc->getElementsByTagName('Reference');
for ($i=0; $i<=$x->length-1; $i++) {
//Process only element nodes
if ($x->item($i)->nodeType==1) {
if ($x->item($i)->childNodes->item(0)->nodeValue == $q) {
$y=($x->item($i)->parentNode);
}
}
}
$cd=($y->childNodes);
for ($i=0;$i<$cd->length;$i++) {
//Process only element nodes
if ($cd->item($i)->nodeType==1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
echo($cd->item($i)->childNodes->item(0)->nodeValue);
echo("<br>");
}
}
?>
此代码中的字段显示:
记者:Test1 参考:1 提交:2014-11-08T00:00:00 状态:待定 官员:姓名1 电子邮件:test@email.com 电话:0113 1234我也不确定为什么REFERENCE也是大写的, 我知道我们有你的属性,但我不确定如何将它们应用到php代码,因为我不知道如何引用每个单独的字段。
非常感谢您抽出宝贵时间提供帮助。
我有一个XML文件:http://www.cdreporting.co.uk/ajax/cd_catalog.xml php指的是。
当某人有时间输入参考号时,会显示来自XML的数据。在XML上有一个电子邮件字段,我希望以不同的方式显示,即字体颜色的变化。我将如何在我的PHP代码中执行此操作?我知道我可以使用CSS,但在我的PHP代码中你会将它应用到电子邮件领域吗?。
基本上为我的xml
中的每个字段设置样式可以让php在php中显示每个字段。
if ($cd->item($i)->nodeType==1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
if ($cd->item($i)->nodeName == "**REFERENCE**") {
echo '<span class="reference">'.$cd->item($i)->childNodes->item(0)->nodeValue. '</span>';
} else {
echo($cd->item($i)->childNodes->item(0)->nodeValue);
}
echo("<br>");
if ($cd->item($i)->nodeType==1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
if ($cd->item($i)->nodeName == "**Reporter**") {
echo '<span class="reference">'.$cd->item($i)->childNodes->item(0)->nodeValue. '</span>';
} else {
echo($cd->item($i)->childNodes->item(0)->nodeValue);
}
echo("<br>");
if ($cd->item($i)->nodeType==1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
if ($cd->item($i)->nodeName == "**Submission**") {
echo '<span class="reference">'.$cd->item($i)->childNodes->item(0)->nodeValue. '</span>';
} else {
echo($cd->item($i)->childNodes->item(0)->nodeValue);
}
echo("<br>");
if ($cd->item($i)->nodeType==1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
if ($cd->item($i)->nodeName == "**Email**") {
echo '<span class="reference">'.$cd->item($i)->childNodes->item(0)->nodeValue. '</span>';
} else {
echo($cd->item($i)->childNodes->item(0)->nodeValue);
}
echo("<br>");
上面看起来是对的吗?我可以编辑每个字段来更改字体或添加换行符吗?
答案 0 :(得分:0)
你需要一些CSS,类似于:
.reference {color: blue;}
然后修改您的PHP以检查节点名称是&#34; REFERENCE&#34;并发出必要的标记来调用CSS:
//Process only element nodes
if ($cd->item($i)->nodeType==1) {
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
if ($cd->item($i)->nodeName == "REFERENCE") {
echo '<span class="reference">'.$cd->item($i)->childNodes->item(0)->nodeValue. '</span>';
} else {
echo($cd->item($i)->childNodes->item(0)->nodeValue);
}
echo("<br>");
您可以以相同的方式设置其他字段(节点)的样式,包括换行符和其他格式。如果你想要设置很多样式,请查看PHP的switch
运算符。
至于&#34; REFERENCE&#34;大写,你的链接以这种方式显示在XML中。您可以使用另一个if
语句来发出类似&#34;参考&#34;必要时,或者更正存储在XML中的内容。
现在我已经想过这个了,如果你将CSS样式命名为与XML节点名称相同,你可以很容易地为每个项目设置样式。根据您编写CSS的方式,您可以使样式相同或不同。
//Process only element nodes
if ($cd->item($i)->nodeType==1) {
$class = strtolower($cd->item($i)->nodeName);
echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
echo "<span class=\"$class\">".$cd->item($i)->childNodes->item(0)->nodeValue. '</span>';
echo("<br>");
}
这将获取节点名称,使用strtolower
将其强制为小写,然后将其分配给$ class。然后<span>
元素使用$ class作为类名。无论你在CSS中为该类名写的是什么,都将被用作样式。
您可以应用相同的想法来设置名称的样式,但是您需要不同的类名。因此,像<span class=\"nn-$class\">"
这样的东西会将类nn-reference应用于节点名称以供参考。
在某些情况下,您可能希望使用<div>
而不是<span>
进行块级格式化。您必须相应地决定和修改您的代码。
注意:我还没有测试过上面的代码;我需要XML才能做到这一点。可能存在小的语法错误,但这个想法是正确的。