【问题标题】:Echo option value with selected选择时回显选项值
【发布时间】:2016-10-12 13:02:57
【问题描述】:

当我按下搜索按钮时,我正在尝试修复。从我的选项字段中选择的搜索保持选中状态。但目前它会自动选择我表单中选项的第一个字段。

第一个是硬编码的,它可以工作。

<option value="HS" <?= ($nickval == 'HS' ? 'selected="selected' : '')?>>Homer Simpsons</option>

但后来我想从数据库中回显选项值,所以它不是硬编码的。

<?php
while(db2_fetch_row($queryexe)) {
 echo "<option value='$pin'>$fullname</option>";
}
?>   

现在当我想添加它是否被选中时,我试图像这样解决它。

echo "<option value='$pin'($nickval == '$pin' ? 'selected='selected'' : '')>$fullname </option>";

这就是我获取密码的方式

 $pin = db2_result($queryexe, 'P510PIN');

这就是我获得 $nickval 的方式

 $nickval = $_GET["int"];

任何建议我做错了什么?对不起,如果我不清楚,但我已经尽力了

【问题讨论】:

  • 这是一个" ' 混合
  • PHP 肯定会告诉你那行代码的语法错误...
  • 我尝试使用 '' 而不是 " 但它不起作用。
  • 我怎样才能看到错误?

标签: php


【解决方案1】:

除了在语法高亮中指出的引用错误...

您正在尝试在字符串中执行 PHP 代码:

echo "<option value='$pin'($nickval == '$pin' ? 'selected='selected'' : '')>$fullname </option>";

变量插值是一回事,但字符串内的代码不会自动执行。它只是一个回显到页面的字符串。 (检查页面源代码并查看实际发送到浏览器的内容。)

将字符串与构建字符串的代码分开:

echo "<option value='$pin' " . ($nickval == $pin ? "selected='selected'" : "") . ">$fullname </option>";

【讨论】:

  • 我没有得到任何“选择”,这就是我现在得到的
  • @Mato:调试时,$nickval$pin 的运行时值是多少(包括空格)?
  • 对不起,我还有很多事情要做,我会尽快回复
  • 我打印了 nickval 和 pin,但 nickval 完全错误。
  • @Mato:好吧,如果值不同,那么这就解释了为什么比较它们会返回 false。
猜你喜欢
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多