0

私はwaiting.phpというページを持っています。このページは、カウンセラーと学生の間で実際のセッションを開始するためのポータルです。「name='submit」という送信ボタンがあります

送信ボタンを(設定して)実行するように要求するコードがあります。それが発生したら、PDOステートメントで挿入クエリを実行します。ただし、phpmyadminを確認しても、何も挿入されていません。

私のコードは次のようになります:

f(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (counselorname) VALUES (:counselorname)");
    $query->bindParam(':counselorname', $_POST['namedrop']);
    $query->execute();
    }

これが、カウンセラー名の送信ボタンとドロップメニューを作成する実際のコードです。

echo "<td> 
                <form method= 'post'>
                    </form><select name='namedrop'>
                        <option value=''>Counselor Name</option> 
                        <option value='dmin-John'>Admin - John</option>
                        <option value='Admin-Christine'>Admin - Christine</option>
                        <option value='Admin-Dawne'>Admin - Dawne</option>
                        <option value='Counselor-Cherie'>Counselor - Cherie</option>
                        <option value='Counselor-Tootie'>Counselor - Tootie</option>
                        <option value='Counselor-Debbie'>Counselor - Debbi</option>
                        <option value='FrontDesk-Delores'>Front Desk - Delores</option>
                        <option value='FrontDesk-Kiana'>Front Desk - Kiana</option>
                    </select> 
                </form>";

echo "<td> <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
            <input type='submit' name='submit' value='Start Session'>
            </form> </td>";

私はPHPを初めて使用するので、ロジックはそこにあるものですが、構文とロジックの実装方法を知っているのは平均以下です。

どんな助けでも大歓迎です。

編集 :

これがページの外観です:

Waiting.php

編集2:

echo "<td> 
            <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
                    <select name='namedrop'>
                        <option value=''>Counselor Name</option> 
                        <option value='dmin-John'>Admin - John</option>
                        <option value='Admin-Christine'>Admin - Christine</option>
                        <option value='Admin-Dawne'>Admin - Dawne</option>
                        <option value='Counselor-Cherie'>Counselor - Cherie</option>
                        <option value='Counselor-Tootie'>Counselor - Tootie</option>
                        <option value='Counselor-Debbie'>Counselor - Debbi</option>
                        <option value='FrontDesk-Delores'>Front Desk - Delores</option>
                        <option value='FrontDesk-Kiana'>Front Desk - Kiana</option>
                    </select> 

            <td> <input type='submit' name='submit' value='Start Session'>
            </form> </td>";
}

  echo "</tr>";
  echo "</table>";

if(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (id, counselorname) VALUES (:id, :counselorname)");
    $query = $dbh->bindParam(':id', $row['id']);
    $query->bindParam(':counselorname', $_POST['namedrop']);
    $query->execute();
    }
4

3 に答える 3

1

マークアップに欠陥があります。$ queryステートメントは期待namedropしていますが、この選択リストは送信ボタンと同じフォームの一部ではありません。

コードは3つの異なる形式を示していますが、完全な形式は1つではありません。

<form method="post" action="..." target="_new">
    -- All components and elements must be declared inside this node
</form>
于 2013-01-02T15:27:43.003 に答える
0

バインドの配列を追加して、ステートメントを直接実行できます。

if(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (counselorname) VALUES (:counselorname)");
    $query->execute(array(':counselorname', $_POST['namedrop']));
}
于 2013-01-02T15:23:06.183 に答える
0

問題はそれでした:action = "counselor.php?id="。$row['id']。「」

これは、挿入スクリプトがcounselor.phpページに移動することになっていることを意味します。射撃エラーがなかった理由は、私が言ったことは、私が望んでいた方法ではなく、受け入れて機能していたからです。

2番目の問題は、IDが挿入されないが名前が挿入されない場合、フォームはmethod=postになければならないということです。だからこれを修正するには:

echo "
        <td>    <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
                    <select name='namedrop'>
                        <option value=''>Counselor Name</option> 
                        <option value='dmin-John'>Admin - John</option>
                        <option value='Admin-Christine'>Admin - Christine</option>
                        <option value='Admin-Dawne'>Admin - Dawne</option>
                        <option value='Counselor-Cherie'>Counselor - Cherie</option>
                        <option value='Counselor-Tootie'>Counselor - Tootie</option>
                        <option value='Counselor-Debbie'>Counselor - Debbi</option>
                        <option value='FrontDesk-Delores'>Front Desk - Delores</option>
                        <option value='FrontDesk-Kiana'>Front Desk - Kiana</option>
                    </select>
            </td>

            <td> <input type='submit' name='submit' value='Start Session'></td>
            </form> </td>";

次に、counselor.phpでテストを実行して、次のものを取得しているかどうかを確認しました。

$id = $_GET['id'];
echo "$id";

$name = $_POST['namedrop'];
echo "$name";

小切手

その後、クエリを実行するために行ったのは:

if(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (id, counselorname) VALUES (:id, :counselorname)");
    $query->bindParam(':id', $_GET['id']);
    $query->bindParam(':counselorname', $_POST['namedrop']);
    $query->execute();
    }

そして、これが完成した結果です:

終了

于 2013-01-02T16:15:39.537 に答える