【问题标题】:PHP array saving each character in a separate field instead of separating by the commaPHP数组将每个字符保存在单独的字段中,而不是用逗号分隔
【发布时间】:2022-08-16 23:06:25
【问题描述】:

美好的一天,这里是 PHP 新手

使用带有下拉菜单的表单,我想发送一个包含 2 个值的数组,一个 Int 和一个 String 如 \"[Int,String]\",

然而 PHP 正在创建一个包含每个字符的数组,最终 [\"[\",\"i\",\"n\",\"t\",\",\",\"s\",\"t\",\"r\",\ "i\",\"n\",\"g\",\"]\"]

在 PHP 方面,如何让数组只有 2 个元素,即 int 和 string?

HTML:

<label class=\"large-label\"><b>Course: </b><span class=\"small-label\"></span><br></label>
<select name=\"course\" id=\"course\">
  <option id=\"0\" value=\"\" selected=\"\" disabled=\"\">« Please Select a Course »</option>
  <option id=\"1\" value=\"[0,all]\">All</option>
  <option id=\"2\" value=\"[1,Course1]\">Course1</option>
  <option id=\"3\" value=\"[2,Course2]\">Course2</option>
  <option id=\"4\" value=\"[3,Course3]\">Course3</option>
</select>

PHP:

$courseId = $_POST[\'course\']; 
print_r ($courseId);
  • 请提供var_dump($_POST) 的实际原始输出。

标签: php arrays


【解决方案1】:

我建议您不要在输入中发送数组。 您可以将其作为字符串发送并在之后拆分逗号,例如:

 <option id="1" value="0,all">All</option>
list($myInt, $myString) = explode(",", $_POST['course']);

// equivalent of 
$course = explode(",", $_POST['course']);
$myInt = $course[0];
$myString = $course[1];

【讨论】:

    【解决方案2】:

    获得值后,您可以爆炸字符串:

    <select name="course" id="course">
       <option id="0" value="" selected="" disabled="">« Please Select a Course »</option>
       <option id="1" value="0,all">All</option>
       <option id="2" value="1,Course1">Course1</option>
       <option id="3" value="2,Course2">Course2</option>
       <option id="4" value="3,Course3">Course3</option>
     </select>
    

    在 PHP 中是这样的:

    $courseId = $_POST['course']; 
    $arr = explode(',', $courseId);
    print_r ($arr);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-24
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多