此代码有效,除非$market
返回多个单词。
IE:科罗拉多州将返回普韦布洛,它起作用。当它返回“科罗拉多斯普林斯”时,$market
只有回声“科罗拉多”,而SID从不显示。我很遗憾这段代码可能很难看,但是我的所有内容都很糟糕。
$pickstate = $_POST['state'];
$result = mysql_query("SELECT * FROM ppc WHERE State='" . $pickstate . "'");
if (!$result) {
echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}
echo '<form action="" method="POST"><select id="Market" name="Market">';
while ($row = mysql_fetch_array($result)) {
echo ( '<option value= '.$row['Market'].' onclick="this.form.submit();">'.$row['Market'].'</option>' );
}
echo "</select></form>";
$market = $_POST['Market'];
echo "Market = " . $market . "<br />";
$sid = mysql_query("SELECT SID FROM ppc WHERE Market='" . $market . "'");
while ($row = mysql_fetch_array($sid)) {
echo '<p>SID = ' . $row['SID'] . '</p><br />';
}
答案 0 :(得分:1)
考虑到您的实际代码,您必须更改
echo "<option value=" . $row['Market'] . " onclick=\"this.form.submit();\" . $row['Market'] . "</option>";
到这个
echo "<option value=" . $row['Market'] . " onclick=\"this.form.submit();\"" . $row['Market'] . "</option>";
另外,您可以考虑编写那些具有可读性的行,如下所示:
echo ( '<option value= '.$row['Market'].' onclick="this.form.submit();"'.$row['Market'].'</option>' );
结合不同类型的报价会有所帮助。当您必须输出双引号时,请尝试使用单引号。
答案 1 :(得分:0)
您缺少值周围的引号。您需要将引号放在onclick周围。它只显示第一个单词,因为下面的单词因空格而丢失。引号使其包含空格和以下单词。
echo ( '<option value= "'.$row['Market'].'" onclick="this.form.submit();">'.$row['Market'].'</option>' );