フォーム入力を受け入れ、それをテーブルと比較して関連情報を画面に表示するカスタムパッケージを開発しています。トランスポートとスキーマが正しく設定されています(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>