Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让php从下拉框中读取一串单词?_Php_Html - Fatal编程技术网

如何让php从下拉框中读取一串单词?

如何让php从下拉框中读取一串单词?,php,html,Php,Html,非常感谢你的帮助。我欠你们大家一声谢谢。将来我会问更多的问题。有人通过给我以下代码解决了问题: “回声”。strval($row['style'])。"" . “” 而且它工作得很好!!!!!!!!!你太棒了 很抱歉,我不知道如何发布后续问题,所以我一直将每个问题作为新问题发布。我以前从未参加过任何论坛,所以我不知道如何跟随帖子:(对不起 我以前问过一个问题,但没有发布我的代码,那么多善良的人(非常感谢)都不能帮我 所以我将在下面发布我的部分代码 "; 回显“选择项目”; 回声“; } whil

非常感谢你的帮助。我欠你们大家一声谢谢。将来我会问更多的问题。有人通过给我以下代码解决了问题: “回声”。strval($row['style'])。"" . “

而且它工作得很好!!!!!!!!!你太棒了

很抱歉,我不知道如何发布后续问题,所以我一直将每个问题作为新问题发布。我以前从未参加过任何论坛,所以我不知道如何跟随帖子:(对不起

我以前问过一个问题,但没有发布我的代码,那么多善良的人(非常感谢)都不能帮我

所以我将在下面发布我的部分代码

"; 回显“选择项目
”; 回声“; } while($row=mysql\u fetch\u数组($result)) { 回显“$row[style]$row[color]
”; } mysql_close($con); 回声“; 回声“

”; echo“输入您的4位邮政编码
”; 回声“; 回声“

”; 回显“输入数量
”; 回声“; 回声“

”; 回声“; 回声“; ?> 然后,为了处理表单,我使用$_POST['item']来找出选择了哪个项目,我得到了第一个单词,其余的单词丢失了

例如,如果下拉框中填充了以下内容:

Dressmaker人体模型尺寸12 皮肤颜色的人体模型躯干PH-9

如果选择的项目是“Dressmaker manenquin尺码12”,则$\u POST['item']会给我Dressmaker,其余的都会丢失


我昨晚和今天花了整整一个晚上进行搜索,但没有取得任何进展,请帮助:(

这是因为在php中,您可以获得下拉菜单选项的“value”属性中的内容。 您需要这样做:

替换

echo "<option value=$row[style]>$row[style] $row[color]</option><br />";    
echo“$row[style]$row[color]
”;

echo“$row[style]$row[color]
”;
问题在于选项“echo”语句中缺少引号

试试这样的

while($row = mysql_fetch_array($result))
{
    printf('<option value="%s">%s %s</option>',
           htmlspecialchars($row['style']),
           htmlspecialchars($row['style']),
           htmlspecialchars($row['color']));
}
while($row=mysql\u fetch\u array($result))
{
printf(“%s%s”,
htmlspecialchars($row['style']),
htmlspecialchars($row['style']),
htmlspecialchars($row['color']);
}
另外请注意,

元素不属于


编辑:添加了
htmlspecialchars
以正确转义检索字符串中可能存在的任何HTML实体

这仍然适用于我以前的文章:

//======开始上一篇文章

希望您的MYSQL数据库有一个主键?如果有,请将每个
值设置为该项的主键

例如:

SQL

表单PHP

echo "<option value='".$query['id']."'>".$query['desc']."</option>";

当您需要时,您还可以使用它从数据库中获取所有其他相关信息

//另一次编辑

@坎布拉卡-没错-我忘了清理报价


@奥斯曼-您的解决方案是一个临时解决方案。如果id/主键系统不到位,我强烈建议应用它。一盎司的预防抵得上一磅的治疗。

如果它只给您第一个单词,那么您就忘了用引号括住选项
value="。否则显示给我们构建的HTML源。< /P>只需添加注释,或者编辑这个问题,而不是发布新的问题。可能的重复的东西需要注意;回响一堆静态HTML是浪费处理能力,你总是会遇到引用困难。上下文(
)在需要时。此外,由于数组键周围缺少引号,您上面的代码将抛出E_NOTICE错误。仅供参考,始终使用此语法引用关联数组成员
$array['key']
为什么您会问这个问题3次?谢谢cambrac,它仍然会给我第一个单词。My$row['style']它本身不止一个单词。因此,即使我在value属性中只使用$row['style'],它也应该不止一个单词。但它只给了我第一个单词,请再次帮助……您是否确保将它括在引号中?这就是为什么我将2\“。另外,最好也通过htmlspecialchars运行它,这样如果字符串中有引号,它就不会破坏html。我使用了echo”“.strval($row['style'])。”。“
”。它现在正在工作。但我想听取你们的建议,修改我的数据库以正确使用主id:)当我输入这些评论时,我想我已经理解了Steve和Phil所说的主键id作为value属性的值是什么意思。Marvo!非常感谢!感谢Phil指出这里的修复是临时修复,长期解决方案在于主键id:)非常感谢大家!谢谢你,菲尔,这仍然是我的第一句话。我的$row['style']本身不止一个单词。因此,即使我在value属性中只使用$row['style'],它仍然不止一个单词。但它只给了我第一个单词,请再次帮助…粘贴到呈现的HTML中,以获得
元素列表。另外,请参阅Steve关于主键的回答,因为这些主键更易于用于项目查找。回答不错,它只缺少mysql\u real\u escape\u字符串,因此可以避免sql注入。比如:$desc=mysql\u query(“从产品中选择样式,其中id=”。mysql\u real\u escape\u string($\u POST['item'])。“;”);
id  desc
1   "dressmaker thing with mannequin"
2   "dressmaker thing no mannequin"
echo "<option value='".$query['id']."'>".$query['desc']."</option>";
while($row = mysql_fetch_array($result))
{
echo "<option value=$row[style]>$row[style] $row[color]</option><br />";    
}
while($row = mysql_fetch_array($result))
{
echo "<option value='".$row['id']."'>$row['style'] $row['color']</option><br />";    
}
$desc = mysql_query("SELECT style FROM products WHERE id='".$_POST['item']."';");