0

我已经编写了一个脚本来将信息发布到我的数据库中,因为我无法发布它并且需要帮助指出我所缺少的内容。

我的 php 帖子看起来像这样:

$query = "SELECT * from departments";
$res = mysql_query($query);
echo '<div id="department" >';
echo '<form action="depedit.php" method="post">';
echo '<input type="text" placeholder="Search departments">';
echo '<br>';
echo '</form>';
echo '</div>';
echo '<div id="depadd">'; 
echo '<form>';
echo '<table width="0" border="0">';
echo '<tr>';
echo '<td>Name:</td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo "<select name='depid'>";
while ($row = mysql_fetch_array($res)) {
    echo "<option value='".$row['id']."'>".$row['depname']."</option>";
}
echo "</select>";
echo '</td>';
echo '  </tr>';
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '  <tr>';
echo '<td><label class="limit">Select Limit for active courses in Learning Locker:</label></td>';
echo '  </tr>';
echo '  <tr>';
echo '<td>';
echo "<select name='courselimit'>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
echo "<option value='3'>3</option>";
echo "<option value='4'>4</option>";
echo "<option value='5'>5</option>";
echo "<option value='0'>Unlimited</option>";
echo "</select>";
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '<tr>';
echo '<td><input type="radio" id="1" name="senabled" value="1"/><label for="c1" class="required">Required<br>(Study Shredder Feature Enabled)</br></label></td>';
echo '<td><input type="radio" id="0" name="senabled" value="0"/><label for="c1" class="optional">Optional</label></td>';
echo '</tr>';
echo '<tr>';
echo '<td><input type="hidden" name="orgid" value="'.$adminorgid.'"></td>';
echo '</tr>';
echo '<tr>';
echo '<td><input type="hidden" name="createdby" value="'.$userid.'"></td>';
echo '</tr>';  
echo '<tr>';
echo '<td><input type="hidden" name="timecreated" value="'.time(now).'"></td>';
echo '</tr>';
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '  <tr>';
echo '    <td><button type="submit" class="btn">Submit</button></td>';
echo '  </tr>';
echo '</table>';
echo "</form>";
echo '</div>';

depedit.php 看起来像这样:

 $adddep = "INSERT INTO organization_dep (orgid,depid,courselimit,senabled,createdby,timecreated) VALUES ('".$_POST["orgid"].",".$_POST["depid"].",".$_POST["courselimit"].",".$_POST["senabled"].",".$_POST["createdby"].",".$_POST["timecreated"]."')";
    $res = mysql_query($adddep);

    if ($res === TRUE) {
        echo "Department added successfully";
    } else{
        printf("Could not create department");
    }

正确的信息似乎已通过,因为 url 在其中显示以下信息:

/index.php?depid=6&courselimit=3&senabled=1&orgid=9&createdby=1129&timecreated=1364005206

对此的任何帮助将不胜感激,因为我确信它只是我正在寻找的一些简单的东西。

4

3 回答 3

1

您想从 $_POST 获取值

('".$_POST["orgid"].",".$_POST["depid"].",".$_POST["courselimit"].",".$_POST["senabled"].",".$_POST["createdby"].",".$_POST["timecreated"]."')";

但是你说它是通过 URL 传递的,这看起来你需要使用 $_GET 来获取值

--- 还有一个小技巧,您可以使用 echo 打印多行。只要你关闭它,最后

例如

echo " <html>
<body>
</body>
</html>
";
于 2013-03-23T02:35:54.630 回答
0

我认为在这之前你有很多事情要做:

  1. 只有第一种形式,似乎是用于搜索部门,具有方法和动作属性
  2. 由于第二个表单没有 action 属性,所以它不是提交到 depedit.php 而是提交到具有该表单的同一页面。
  3. 由于第二种形式没有方法属性,它默认为 GET,并且您正在尝试读取 PHP 中的 POST 变量。如果它不使用 GET,您将不会在生成的 URL 中看到这些参数。
  4. 在 SQL 插入语句中,每个文本值必须有单引号,但int 值不能。现在你在第一个值之前有一个单引号,在最后一个值之前有一个单引号,这是没有意义的。
于 2013-03-23T02:36:27.810 回答
0

第一:这部分不会被发布“depedit.php”,因为没有提交

echo '<form action="depedit.php" method="post">'; echo '<input type="text" placeholder="Search departments">'; echo '<br>'; echo '</form>';

第二:这永远不会发布到 depedit.php,因为您<form>没有指定“depedit.php”的操作

echo '<form>';
echo '<table width="0" border="0">';
echo '<tr>';
//other codes
echo "</form>";

也许你的意思是删除第一个echo '</form>'(line 7)和第二个<form>(line 10)

于 2013-03-23T02:36:39.393 回答