0

フォーム入力を受け入れ、それをテーブルと比較して関連情報を画面に表示するカスタムパッケージを開発しています。トランスポートとスキーマが正しく設定されています(BobsGuides.comのガイドに従っていることを願っています)。問題なくテーブルから読み戻すことができます。私の問題は、フォーム入力の実装を開始したときに始まりました。

基本的に、私が投稿しているセッション変数は受信されないように見えるため、issetがtrueと評価されることはなく、フォームが何度も表示されます。

私はPHPを始めたばかりで、xPDOに関しては完全な初心者なので、おそらく気づかなかったことがいくつかあることを受け入れますが、誰かが私を正しい方向に向けることができれば、非常に感謝しています。

<?php
    $path = MODX_CORE_PATH . 'components/dataease/';
    var_dump($_POST['submit']);
    var_dump($_POST['accNo']);

    // get POST variable this is captured
    $accNo = $_POST['accNo'];
    $output = '';


// Check if form has been submitted
if (isset($_POST['submit'])) {
    // Get info from the database
    $query = $modx->newQuery('accno');
    $query->select($modx->getSelectColumns('Dataease','Dataease','',array('*')));
    $query->where(array('accNumber:LIKE' => '$accNo'));
    var_dump($query);
    // Place it into a variable for output
    if (!$query) {
        return "Query failed";
    } else {
    $dataease = $modx->getCollection('Dataease',$query);
    // Count the returned rows, should only ever be 1
    $output .= '<p>Total: '. count($dataease) . '</p>';

    // Show the found data
    foreach($dataease as $sql) {
        $fields = $sql->toArray();
        $output .= $modx->getChunk('showData', $fields);
    } 
}
return $output;

} else {
    // Get the form chunk
    $form = $modx->getChunk('dataEntryForm');
    return $form;

}

これは私のフォームチャンクです

<h2>Enter Account Number:</h2>
<form method="POST" action="">
    <input name="accNo" type="text"/>
    <input name="submit" type="submit" value="submit" />
</form>
4

2 に答える 2

0

テーブルを操作するためにhttp://rtfm.modx.com/display/ADDON/Rowboatを試していますか?

于 2013-02-21T15:27:02.237 に答える
0

これを試して、投稿があったかどうかを確認してください

if($_SERVER['REQUEST_METHOD'] == "POST")  

および/またはフォームに非表示の送信フィールドを指定します。一部のブラウザ(少なくとも一部は以前)は、送信ボタンにフォーカスがないときにReturnキーを押すだけで、送信フィールドを投稿しません。それもテストします。

于 2013-02-21T15:41:41.807 に答える