1
PHPを使用してSQLクエリからSELECT結果をフィルタリングするために、選択ドロップダウンメニューと入力タグを使用します。ユーザーは<、=、>のいずれかを選択し、フィルタリングする番号を入力します。ajaxを使用してSQL SELECTクエリをクエリします
私はこれらの警告や失敗を取得しています:
お知らせ:URLに
致命的なエラーを非オブジェクトのプロパティを取得しようとすると:URL
「WHERE c.level?」を使用する有効なアプローチですか?
私はまた、<、=、または>の代わりにオプションの開始タグと終了タグの間にHTML番号コードを使用しようとしましたが、同じエラーが発生します。
<form method="post" action="filterChar.php" id="char_filter">
<fieldset>
Level is
<select name="expression">
<option value="<"> < </option>
<option value="="> = </option>
<option value=">"> > </option>
</select>
<input type="number" name="limit">
<input type="submit" name="char_filter">
</fieldset>
</form>
jQueryのAJAX呼び出し:
$('#char_filter').submit(function() {
$.ajax({
url: 'filterChar.php',
type: "POST",
dataType: { expression: $(this).expression.value,
limit: $(this).limit.value}
});
});
PHPハンドラ:ここ
は私のフォームでいくつかのより多くのエラーを発見
if(!($stmt = $mysqli->prepare("SELECT c.id, c.name, r.name, cl.name, c.level FROM dnd_character c INNER JOIN dnd_race r ON c.race = r.id INNER JOIN dnd_class cl ON c.class = cl.id WHERE c.level ? ?"))) {
echo "Prepare failed: " . $stmt->errno . " " . $stmt->error;
}
if(!($stmt->bind_param('si',$_POST['expression'],$_POST['limit']))) {
echo "bind_param failed: " . $stmt->errno . " " . $stmt->error;
}
if(!($stmt->execute())) {
echo "Execute failed: " . $stmt->errno . " " . $stmt->error;
}
`
を使用することができます。 –
なぜ2つのプレースホルダを使用していますか。あなたの価値はただ一つの価値ですか? – Akintunde007
あなたのajax呼び出しでは、 'dataType'を' data'に置き換えてください。一般的に、このようなトラブルシューティングを行う場合は、ajax呼び出しとPHPスクリプトを個別にトラブルシューティングしてください。 –