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を使用する必要があるようです。

---そして、エコーを使用して複数の行を印刷できる小さなヒントが1つあります。あなたがそれを閉じる限り、結局

例えば

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

これが機能する前に、あなたにはたくさんのことを理解する必要があると思います。

  1. 部門を検索するためのように見える最初のフォームのみが、メソッドとアクションの属性を持っています
  2. 2番目のフォームにはaction属性がないため、depedit.phpに送信するのではなく、フォームと同じページに送信します。
  3. 2番目のフォームにはmethod属性がないため、デフォルトでGETになり、PHPでPOST変数を読み取ろうとしています。GETを使用していなかった場合、結果のURLにこれらのパラメーターは表示されません。
  4. SQLの挿入ステートメントでは、すべてのテキスト値を一重引用符で囲む必要がありますが、int値を囲む必要はありません。これで、最初の値の前に1つの引用符があり、最後の値の前に1つの引用符がありますが、これは意味がありません。
于 2013-03-23T02:36:27.810 に答える
0

まず、送信がないため、この部分は「depedit.php」にPOSTされません。

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

<form>2番目: 「depedit.php」を指定するアクションがないため、これがdepedit.phpにPOSTされることはありません。

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

多分あなたは最初echo '</form>'(line 7)と2番目を削除することを意味します<form>(line 10)

于 2013-03-23T02:36:39.393 に答える