Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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 post select值时获取错误_Php_Html - Fatal编程技术网

Php post select值时获取错误

Php post select值时获取错误,php,html,Php,Html,我有个小问题 他没有发帖。 所以我得到了一个错误,比如:未定义索引:level\u id 我到底能做什么 $sql1 = 'SELECT T_ABILITY.PK AS AB_PK,T_ABILITY.ABILITY_NAME AS AN,T_ABILITY_LEVEL.PK AS LE_PK,T_ABILITY_LEVEL.LEVEL_NAME AS LN FROM T_USER_ABILITY_REL,T_ABILITY,T_ABILITY_LEVEL WHERE T_USER_ABILIT

我有个小问题

他没有发帖。 所以我得到了一个错误,比如:未定义索引:level\u id

我到底能做什么

$sql1 = 'SELECT T_ABILITY.PK AS AB_PK,T_ABILITY.ABILITY_NAME AS AN,T_ABILITY_LEVEL.PK AS LE_PK,T_ABILITY_LEVEL.LEVEL_NAME AS LN
FROM T_USER_ABILITY_REL,T_ABILITY,T_ABILITY_LEVEL WHERE
T_USER_ABILITY_REL.ABILITY_FK = T_ABILITY.PK AND
T_USER_ABILITY_REL.ABILITY_LEVEL_FK = T_ABILITY_LEVEL.PK AND
T_USER_ABILITY_REL.USER_FK = '.$user_id.'
ORDER BY AN';
$stmt1 = oci_parse($conn, $sql1);
$r1    = oci_execute($stmt1);
while ($row1 = oci_fetch_array($stmt1, OCI_RETURN_NULLS + OCI_ASSOC)) {
  echo '<form method="post">';
  echo '<tr>';
  echo '<td>'.$row1["AN"].'</td>';
  echo '<input type="hidden" name="ability_id" value="'.$row1["AB_PK"].'"/>';
  echo '<td class="select-level">';
  $sql2  = 'SELECT PK,LEVEL_NAME FROM T_ABILITY_LEVEL ORDER BY LEVEL_ORDER';
  $stmt2 = oci_parse($conn, $sql2);
  $r2    = oci_execute($stmt2);
  echo '<select name="level_id" class="form-control selectpicker" data-container="body" data-live-search="true" data-size="5" title="Seviye Seçiniz">';
  while ($row2 = oci_fetch_array($stmt2, OCI_RETURN_NULLS + OCI_ASSOC)) {
    echo '<option '.($row2["PK"] == $row1["LE_PK"] ? 'selected="selected"' : "").' value="'.$row2["PK"].'">'.$row2["LEVEL_NAME"].'</option>';
  }
  echo '</select>';

  echo '<button type="submit" name="update-user-ability" class="btn btn-success">Güncelle</button>';
  echo '<button type="submit" name="delete-user-ability" class="btn btn-danger">Sil</button>';
  echo '</td>';
  echo '</tr>';
  echo '</form>';
}

可能是级别_id的值没有发送,因为它是一个。不确定,但可能只有值被正确发布

您可以使用,并在每次使用更改的值时使用JavaScript更新其值


然后,在PHP中,使用该字段而不是select:$level\u id=$\u POST['level\u id\u val']

这是因为您的选择是空的,即oci_fetch_数组$stmt2、oci_RETURN_NULLS+oci_ASSOC不返回任何行

当不存在选项时,select不会向接收的php脚本返回值

在循环之前添加一个默认选项,以确保即使sql查询不返回任何内容,也会传递某些内容

此脚本将返回一个空帖子:

<html>
<body>
<form method="post">
    <select name="select"></select>
    <input type="submit">
</form>
</body>
</html>
<?php
var_dump($_POST); // array(0) { } 
而该值将定义为12:

<html>
<body>
<form method="post">
    <select name="select">
        <option value="12">12</option>
    </select>
    <input type="submit">
</form>
</body>
</html>
<?php
var_dump($_POST); // array(1) { ["select"]=> string(2) "12" } 

这部分代码没有与错误消息相关的问题。显示引用级别id数组索引的代码。我添加了提交部分。您的HTML无效。您在表中输入了ability\u id,但在表中没有。谢谢,但是ability\u id没有问题。我正在获取与错误相关的级别\u id。您不能用纯html制作表单以避免复杂化吗?Select作为表单的一个元素与任何其他表单元素一样好。事实上,可以使用js更新隐藏输入的值,但这绝对不是正确的方法。@FélixGagnon Grenier不要让我阻止你实际发挥建设性的作用,并向我们展示什么是正确的方法使用select在表单中工作。这是正确的方法。如果op得到的是一个未定义的索引,那是因为他们没有显示准确的代码,或者有打字错误,或者任何他们正在做的事情的奇怪方式。您当前共享的是错误信息:也就是说,不能使用selects以表单形式发送值。对不起,那是假的,我必须告诉你。我将重复我自己:当然,可以使用JS更新隐藏的输入并使用该输入。但你可以放心,表单通常不会这样使用。@FélixGagnon Grenier我只想问:我不介意人们反对我,我只是介意他们不以建设性的方式来做。。。我会建议OP接受你的答案,如果它works@myfunkyside我看你其实是讲道理的!干杯
<html>
<body>
<form method="post">
    <select name="select">
        <option value="12">12</option>
    </select>
    <input type="submit">
</form>
</body>
</html>
<?php
var_dump($_POST); // array(1) { ["select"]=> string(2) "12" }