Php 从html提交表单发布多个值
我试图使用一个HTML提交,它是从SQL数据库的关联数组填充的,但是我希望传递多个值,而不是通常的1。我已经尝试在值中使用JSON和变量,然后稍后解码JSON以检索单个变量Php 从html提交表单发布多个值,php,html,json,Php,Html,Json,我试图使用一个HTML提交,它是从SQL数据库的关联数组填充的,但是我希望传递多个值,而不是通常的1。我已经尝试在值中使用JSON和变量,然后稍后解码JSON以检索单个变量 <select name="name"> <?php foreach($array as $vals){ echo '<option value={"a":".'$vals['1']'.","b":".'$vals['2']'.","c":".'$vals['3']'.","d":".'$vals
<select name="name">
<?php
foreach($array as $vals){
echo '<option value={"a":".'$vals['1']'.","b":".'$vals['2']'.","c":".'$vals['3']'.","d":".'$vals['4']'."}>Option Name</option>';
}?>
</select>
问题是“x”y,我希望它是“x”
有人知道我如何解决这个问题吗?或者有没有其他方法可以达到同样的效果?我会将JSON构建为一个PHP数组,然后您可以使用base64_encode(JSON_encode())数组。这将更易于阅读,并且您不必担心此解决方案的其他边缘情况。您需要在
值
属性周围加引号,以便空格不会终止它。还可以使用htmlentities()
对其他特殊字符进行编码
另外,不要手动构造JSON,请使用JSON\u encode()
foreach($vals形式的数组){
$obj=[“a”=>$VAL[1],“b”=>$VAL[2],“c”=>$VAL[3],“d”=>$VAL[4];
$json=htmlentities(json_encode($obj));
回显“选项名称”;
}
检查.和的位置
echo '<option value={"a":".'$vals['1']'.","b":".'$vals['2']'.","c":".'$vals['3']'.","d":".'$vals['4']'."}>Option Name</option>';
echo“选项名称”;
纠正
echo '<option value={"a":"'.$vals['1'].'","b":"'.$vals['2'].'","c":"'.$vals['3'].'","d":"'.$vals['4'].'"}>Option Name</option>';
echo“选项名称”;
“在其中一个选项的字符串中有空格之前,它会按预期工作”-尝试trim()
它或preg_replace()
。旁注:
不是有效的结束标记。抱歉,我是说选择。查看{“a”:“x”y,“b”:“xy”,“c”:“xyz”,“d”:“xyzz”}检查“。以assoc和json_encode
it的形式获取行。如果需要array\u组合
,添加自定义键。张贴print\r($vals)的示例
可能需要htmlentities()
。事实上,我可以用json_编码$vals并省略$obj,这是一种更好的方法。谢谢@James不会将按键从1
、2
、3
、4
更改为a
、b
、c
、d
。事实上,那时不需要$obj。再次感谢
echo '<option value={"a":".'$vals['1']'.","b":".'$vals['2']'.","c":".'$vals['3']'.","d":".'$vals['4']'."}>Option Name</option>';
echo '<option value={"a":"'.$vals['1'].'","b":"'.$vals['2'].'","c":"'.$vals['3'].'","d":"'.$vals['4'].'"}>Option Name</option>';