私はJavascript、PHP、MySqlを一緒に使用していくつかの結果を得ようとしています。私はそれについて何かしたことがあるが、期待通りにはうまくいかない。私を助ける誰かがいることを願っています。Javascriptのmysqlクエリ
私は基本的にcatID、catName、catDesc、およびcatParを含むカテゴリテーブルを作成しました。
この場合、主要なカテゴリとサブカテゴリもいくつか作成しています。メインカテゴリーにはcatPar値はありませんが、カテゴリーがサブカテゴリーの場合は、メインカテゴリーIDが親カテゴリーとして取得されます。
私は主なカテゴリを選択リストとして持って来て、別のクエリとjavascriptを使ってサブカテゴリを持ってきましたが、期待通りに機能しません(作成していません別の選択リスト、上書きするだけです)、最終的には解決策が見つかりませんでした。
私はクエリを実行し、サブカテゴリがある場合はすべて正常ですが、それ以上サブカテゴリがない場合、選択リストは消えており、最終カテゴリは選択できません。
値を(別のサブカテゴリが含まれていない場合)安定した選択オプションに入れることができるようにしたいと考えています。final
という名前を付けて、再びメインカテゴリから開始します。
次に、それらを複数のデータベースに送信します。
追加:サブカテゴリがあれば名前の直前のカテゴリにいくつかの特定の文字を挿入しようとしましたが、できませんでした。
これは私のindex.php
<script>
function subs(str) {
if (str == "") {
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("result").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","select_sub.php?q="+str,true);
xmlhttp.send();
}
}
</script>
<?php
$con = mysqli_connect('localhost','root','','test');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
?>
<form method="post" enctype="multipart/form-data">
<fieldset>
<legend>Add New Category</legend>
<label for="category_name">Category Name</label>
<input class="input250" type="text" name="category_name" value="" >
<label for="category_description">Category Description</label>
<input class="input350" type="text" name="category_description" value="" >
<?php
$select_mains="SELECT * FROM categoriestable WHERE catPar IS NULL";
$bring_mains = mysqli_query($con,$select_mains);
if(mysqli_num_rows($bring_mains)>0){
?>
<label for="category_main">Main Category</label>
<select name="main_category" onchange="subs(this.value)">
<option value="0">Select a category</option>
<?php
while($main_categories = mysqli_fetch_array($bring_mains)) {
echo "<option value='".$main_categories['catID']."'>".$main_categories['catName']."</option>";
}
?>
</select>
<?php } else {}
?>
<div id="result"></div>
<select multiple="true" name="final" id="final">
<option name="sub_category" id="cat" value="0" >Test</option>
</select>
<input type="submit" value="Add category">
</fieldset>
</form>
であり、これはある私のselect_sub.php
<?php
$q = intval($_GET['q']);
$con = mysqli_connect('localhost','root','','test');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
$selected_main_category="SELECT * FROM categoriestable WHERE catPar = '".$q."'";
?>
<?php
$has_sub_cat = mysqli_query($con,$selected_main_category);
if(mysqli_num_rows($has_sub_cat)>0){
?>
<select id="sub_category" name="sub_category" onchange="subs(this.value)">
<option name="sub_category" id="cat" value="0">Select a sub category</option>
<?php while($add_to_list = mysqli_fetch_array($has_sub_cat)) {
echo "<option value='".$add_to_list['catID']."'>".$add_to_list['catName']."</option>";
} ?>
</select>
<?php } else { ?>
<?php } ?>
あなたは以下のデータベーステーブルのサンプル構造を見ることができます。 Sample database table
ありがとうございます。
''"。$ q。 "'' aaaaaaaaaaaaaaaaaaaaaaAAAAAAAAAA – Isaac
@Isaacで何を理解する必要がありますか? –
@EfealBAYRAK投稿したコードが非常に脆弱であるため、https://en.wikipedia.org/wiki/SQL_injectionを読んでください。サイトのデータが侵害される可能性があります。 – ceejayoz