SQLテーブルを使用して2番目のドロップダウンリストの選択に応じて、テキストフィールドとテキストエリアを設定しようとしています。どういうわけか私はそれをすべて間違ってしまった。ここに私のコードは、今だ:同じSQLテーブルを使用してドロップダウンに応じてテキストフィールドを自動入力
AJAX/HTML
<script>
function getPackage(val) {
$.ajax({
type: "POST",
url: "get_package.php",
data:'serviceid='+val,
success: function(data){
$("#package-list").html(data);
}
});
}
function getPackageDesc(val) {
$.ajax({
type: "POST",
url: "get_packagedesc.php",
data:'packageid='+val,
success: function(data){
$("#price").html(data);
}
});
}
function selectService(val) {
$("#search-box").val(val);
$("#suggesstion-box").hide();
}
</script>
機能getPackageDescと間違って何かがすでに存在しているように私は感じます。私はそれがこの関数かPHPファイルにあるかどうかわかりません。
MAIN HTML
<div class="frmDronpDown">
<div class="row">
<label>Service:</label>
<br/>
<select name="service" id="service-list" class="demoInputBox" onChange="getPackage(this.value);">
<option value="">Select Service</option>
<?php
foreach($results as $service) {
?>
<option value="<?php echo $service[" serviceid "]; ?>">
<?php echo $service["servicename"]; ?>
</option>
<?php
}
?>
</select>
</div>
<div class="row">
<label>Package:</label>
<br/>
<select name="package" id="package-list" class="demoInputBox" onChange="getPackageDesc(this.value);">
<option value="">Select Package</option>
</select>
</div>
<div class="row">
<label>Package Information:</label>
<br/>
<br/> Price:
<br>
<input type="text" name="price" id="price">
<br>
<br> Package Description:
<br>
<textarea name="packagedesc" form="usrform" id="packagedesc"></textarea>
</div>
</div>
get_package.phpコードのこの部分が機能
<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["serviceid"])) {
$query ="SELECT * FROM tbl_packages WHERE serviceid = '".$_POST["serviceid"]."'";
$results = $db_handle->runQuery($query);
?> < option value = "" > Select Package < /option>
<?php
foreach($results as $package) {
?> < option value = "<?php echo $package["
packageid "]; ?>" > <?php echo $package["packagename"]; ?> < /option>
<?php
}
}
?>
。私は2つのSQLテーブルを使用してドロップダウンを実装しました。tbl_servicesとtbl_packages。次のPHPファイルは私が問題を抱えている場所です。私が悩みを抱えているところ
get_packagedesc.php
<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["packageid"])) {
$query ="SELECT * FROM tbl_packages WHERE packageid = '".$_POST["packageid"]."'";
$result = mysqli_query($conn, $query);
?>
<?php
while($row = mysqli_fetch_array($result)){
?>
<?php echo $price['price'] ; ?></br>
<?php echo $packagedesc['packagedesc']; ?> </br>
<?php
}
}
?>
このコードはあります。同じSQLテーブル(tbl_packages)からデータを取得するのがいいかどうか分かりません。あるいは、私は$結果を混乱させるかもしれません。
私のコードで何が問題になっていますか?解決策は何ですか?
ありがとうございました。
投稿する前に、自分自身でコードをデバッグしてみてください。それは学ぶ最も良い方法です。要求がコンソールに戻ったものをロギングしようとしましたか?また、リクエストがまったく完了したかどうかを知るようリクエストするために、Ajaxに必ず失敗メソッドを持たせてください。あなたのデータ要素はオブジェクトフォーマット '{field:value}'上になければなりません。また、スクリプトが送信した投稿情報にアクセスできることを確認する必要があります。 'var_dump($ _ POST);'を実行してください。 – CristianHG
AJAXを使うのは初心者です。私はデバッグを試みましたが、どこが間違っているのか正確には分かりません。それが私が尋ねた理由です。あなたの提案に関して、私は正確に理解していません。あなたは詳細を教えていただけますか?私がここに投稿した理由は、もっと知っている人から学ぶことです。 – ConcernedCitizen
すべての成功関数にconsole.log(data)を入れることから始めます。それから、 'fail'という新しい関数を追加します。違う方法ですが、コードを統一するためにはうまくいくはずです:成功の代わりに成功関数のような新しい関数を追加し、 console.log(data) 'を実行します。次に、両方のPHPファイルで、 'var_dump($ _ POST);'を実行し、コンソールを開いてテストを開始します。リクエストが失敗した場合、ほとんどの出力は 'responseText'要素の下に表示されます。 (あなたはあなたのコンソールでエラーが発生します) – CristianHG