【发布时间】:2018-01-27 23:43:42
【问题描述】:
这是一个奇怪的问题。我在其他人和示例代码等的帮助下,整理了一个例程,该例程基于一次选择,通过 ajax 将值传递给 php 文件,然后使用选项构建第二个选择,每个选项都有代码集检查变量的值并设置选定的属性。以下是返回的带有选项的 select 语句的示例:
<select class='form-control' id='branch' name='branch'>
<option value = '' selected></option>
<option value="Caldarium"<?php if( $branch=="Caldarium" ) echo ' selected' ?>Caldarium</option>
<option value="Cloondara"<?php if( $branch=="Cloondara" ) echo ' selected' ?>Cloondara</option>
<option value="Crosston"<?php if( $branch=="Crosston" ) echo ' selected' ?>Crosston</option>
<option value="Darkwood"<?php if( $branch=="Darkwood" ) echo ' selected' ?>Darkwood</option>
<option value="Darkwood - Caer Darth"<?php if( $branch=="Darkwood - Caer Darth" ) echo ' selected' ?>Darkwood - Caer Darth</option>
<option value="Darkwood - Hawks Haven"<?php if( $branch=="Darkwood - Hawks Haven" ) echo ' selected' ?>Darkwood - Hawks Haven</option>
<option value="Darkwood - Konigstadt"<?php if( $branch=="Darkwood - Konigstadt" ) echo ' selected' ?>Darkwood - Konigstadt</option>
<option value="Darkwood - Montaigne du Roi"<?php if( $branch=="Darkwood - Montaigne du Roi" ) echo ' selected' ?>Darkwood - Montaigne du Roi</option>
<option value="Darkwood - St. David's"<?php if( $branch=="Darkwood - St. David's" ) echo ' selected' ?>Darkwood - St. David's</option>
<option value="Esfenn"<?php if( $branch=="Esfenn" ) echo ' selected' ?>Esfenn</option>
<option value="Southern Shores"<?php if( $branch=="Southern Shores" ) echo ' selected' ?>Southern Shores</option>
<option value="St. Katherine"<?php if( $branch=="St. Katherine" ) echo ' selected' ?>St. Katherine</option>
<option value="Teufelberg"<?php if( $branch=="Teufelberg" ) echo ' selected' ?>Teufelberg</option>
<option value="the Mists"<?php if( $branch=="the Mists" ) echo ' selected' ?>the Mists</option>
<option value="Vinhold"<?php if( $branch=="Vinhold" ) echo ' selected' ?>Vinhold</option>
<option value="Westermark"<?php if( $branch=="Westermark" ) echo ' selected' ?>Westermark</option>
<option value="Wolfscairn"<?php if( $branch=="Wolfscairn" ) echo ' selected' ?>Wolfscairn</option>
</select>
理论上 PHP (?>) 的问号后面应该有一个右括号,但它显示在字符串中。
无论如何,如果我将此代码直接复制到 HTML 中,一切都会按预期进行。如果我通过 JavaScript 中的命令将其填充到 DIV 标记的 html 中,例如:
$("#namebranchoptions").html(data);
内容在选择中正确显示,但没有显示为已选择(显示为空白)。在此之后,我在 HTML 中插入了一条语句来显示变量的值:
<?php echo "Branch: " . $branch . "<br />" ?>
这显示正确。我难住了。如前所述,如果我将上述内容粘贴到 HTML 中,手动粘贴到 DIV 标记中并重新加载页面,我会得到预期的结果。我不明白为什么会有这种差异。我不知道这可能是 SELECT 或其他一些微妙的方面。这……令人沮丧。
【问题讨论】:
-
PHP 是否真的返回了一个包含所有
if语句的字符串?它应该在服务器端执行它们。 -
显示你的 PHP 脚本。我怀疑你在
echo中而不是在?>之后。 -
嗯。我已经习惯了在标签中使用 php 代码设置选项的想法,以至于我没有想到只在 PHP 方面这样做是有意义的。我很快就会对此进行测试......感谢您指出这一点。有时明显的并不明显。然而,考虑代码并查看它——困难在于我没有将分支传递给 PHP 代码。我也需要看看。现在我要经过的只是该地区。
-
我不确定如何将值传递给 Javascript/Ajax 代码。该值在 PHP 变量中,但不在其他任何地方。如何引用它?
标签: javascript php ajax