У меня есть один выпадающий список, в котором должно быть выбрано значение, аналогичное указанному в записи
См. На скриншоте отдел ИТ-отдела, но как только я щелкнул, чтобы редактировать страницу, он выбрал неправильный отдел:
Я напечатал переменную, и она показала «1» (OVT), правильная переменная должна быть передано "3" (ИТ-отдел)
Это php, которые получают записи из таблицы БД:
if ($conn->NextRecord()) {
//create sub record tree
$record = $dom->createElement("details");
$root->appendChild($record);
Common::buildDom($dom,"deptid",$conn->GetField("deptid"),$record);
Common::buildDom($dom,"salaryrange",$conn->GetField("salaryrange"),$record);
Это форма xsl
<td class="label">Department</td>
<td colspan="3">
<select name="deptid" class="field">
<xsl:variable name="devid" select="details/deptid"/>
<xsl:for-each select="departments">
<option value="{deptid}">
<xsl:if test="deptid = $devid"><xsl:attribute name="selected"/></xsl:if>
<xsl:value-of select="deptname"/></option>
</xsl:for-each>
</select>
</td>
Странно то, что другие используют тот же код, но работает отлично, вот пример рабочего:
<td class="label">Salary Range</td>
<td>
<select name="salaryrange" class="field">
<xsl:variable name="said" select="details/salaryrange"/>
<xsl:for-each select="salaryranges">
<option value="{detailid}">
<xsl:if test="detailid = $said"><xsl:attribute name="selected"/></xsl:if>
<xsl:value-of select="name"/></option>
</xsl:for-each>
</select>
</td>
К вашему сведению, вот коды, которые получают выпадающий список:
$query = "select * from department_master where status = ".STATUS_ACTIVE;
Common::buildElement( $dom, $root, $query, "departments");
$quSalary = "select * from master_details where masterid = 510";
Common::buildElement( $dom, $root, $quSalary, "salaryranges");