2012-03-24 92 views
0

我是新来的网络development.I有一个PHP文件如addcourse.php.In动态选项标签这个文件中有这样的形式的代码块:创建使用XML文件中的PHP

<select name="instructor-id" id="instructor-id"> 
    <option > </option> 
</select> 

使用此代码,用户必须选择一个教师向其添加课程。指示器名称必须向用户显示。我想从xml文件向选项标记添加元素.Xml文件包含许多教师。(instructors.xml)教师指定用户可以看到与选项标签必须从这个instructors.xml file.I试图让教师与PHP标签的foreach,但后来我意识到,选项标签不能在PHP标签中工作。我寻找一个循环,可以在HTML中工作但我无法得到任何答案。解决此问题的真正方法是什么?感谢您的帮助。

+0

显示我的XML文件的10第一行.. – Kokizzu 2012-03-24 11:20:04

+0

<指导员instructorId = “1”>厄兹盖巴亚拉 <指导员instructorId = “2”> ABD巴亚拉 <指导员instructorId = “3”>阿尼尔巴亚拉 <指导员instructorId = “4”> gizem ORT <讲师请示ORID = “5”> bosluk <指导员instructorId = “6”>嫁 <指导员instructorId = “7”>约翰 <指导员instructorId = “8”>珍妮 <指导员instructorId = “9”> tom brad Ozg 2012-03-24 11:23:25

回答

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> 
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;