我是网络开发的新手。我有一个php文件,例如addcourse.php。在这个文件中有一个代码块,形式如下:
<select name="instructor-id" id="instructor-id">
<option > </option>
</select>
使用此代码,用户必须选择一个教师向其添加课程。必须向用户显示指示符名称。我想从xml文件向选项标签添加元素.Xml文件有许多教师。(instructors.xml)教师那个用户可以看到选项标签必须来自这个instructors.xml文件。我试图在php标签中获取带有foreach的教师但后来我意识到选项标签在php标签中不起作用。我找了一个可以在html中工作的循环但我无法得到任何答案。解决这个问题的真正方法是什么?感谢您的帮助。
答案 0 :(得分:1)
在这里,您可以使用DOMDocument()类来获取所有节点值和属性值。
<?php
$xml = '<instructors>
<instructor instructorId="1">ozge yal</instructor>
<instructor instructorId="2">abd yal</instructor>
<instructor instructorId="3">anıl yal</instructor>
<instructor instructorId="4">gizem ort</instructor>
<instructor instructorId="5">bosluk</instructor>
<instructor instructorId="6">marry</instructor>
<instructor instructorId="7">john</instructor>
<instructor instructorId="8">jenny</instructor>
<instructor instructorId="9">tom</instructor>
<instructor instructorId="10">brad</instructor>
</instructors>';
$dom = new DOMDocument();
$dom->loadXML($xml);
foreach ($dom->getElementsByTagName('instructors') as $taginstructors)
{
foreach ($taginstructors->getElementsByTagName('instructor') as $taginstructor)
{
$instructor_array[] = $taginstructor->nodeValue;
$instructorId_array[]=$taginstructor->getAttribute('instructorId');
}
}
// Here $taganswer_array is an array, contained all the instructor options.
?>
<!-- You can display like this. -->
Select Instructor:
<select>
<?php
foreach($instructor_array as $key=> $val)
{
$id=$instructorId_array[$key];
echo "<option value='$id'>".$val."</option>";
}
?>
</select>
答案 1 :(得分:0)
最简单的方法^^(无需使用simplexml解析它)
$fn = 'instructors.xml'; // your file
$x = fopen( $fn ,'r');
$str = fread( $x, filesize( $fn ));
fclose( $x );
$src = array( 'instructorId', '/instructors', 'instructors', 'instructor>', '<instructor' );
$rep = array( 'value', '/select', 'select name="instructor-id" id="instructor-id"', 'option>', '<option' );
$str = str_replace ( $src , $rep , $str );
echo $str;