HTML、AJAX、およびPHPを使用してデータを渡す。 AJAXを導入する前に、すべての機能(フォームタグとPHP処理値をHTMLから削除しました)。jQuery AJAXからPHPスクリプト
ドロップダウン(カテゴリ)は、MySQLクエリから生成されます。ユーザーがオプションを選択すると、IDをajax経由でPHPスクリプト(index.php)に渡して、MySQLクエリを実行して別のドロップダウン(サブカテゴリ)を設定したいと考えています。
Chromeコンソールログは、ajaxがIDを正しく渡していることを示します。
Firebugも、このURLが正しく、URLが正しいことを示しています(index.php?business_category_id = ajax-passed値)。 GET変数が渡されていて、私のPHPスクリプトがそれを探している場合、なぜスクリプトは応答していませんか?なぜそれは価値を受けていないのですか?私はそれをエコーすることはできませんので、それが受信されていないことを知っています。
ajaxスクリプトはjs/script.jsにあり、index.php(my controller)はルートにあり、html(buy-a-biz.php)のページはルートにあり、 PHPスクリプト(下記参照)。
誰でも助けることができれば、私は非常に感謝します。私はjQuery ajaxを初めて使用しています。
HTML。
<select name="category" id="business-category">
<option value="all_categories">Select category</option>
<?php foreach ($categories as $category): ?>
<option value="<?php htmlout($category['id']); ?>"><?php htmlout($category['name']); ?></option>
<?php endforeach; ?>
</select>
AJAX。私も$ .getと$ .postを使って実験しました。
$(document).ready(function(){
$("#business-category").change(function(){
var category_id = $(this).val();
console.log(category_id);
$.ajax({
type: 'GET',
url: 'index.php',
data: { business_category_id: category_id },
success: function(category_id){
$("#result").html(category_id + ' submitted successfully!');
}
});
});
});
PHP。
if(isset($_GET['business_category_id'])){
$category_id = htmlspecialchars($_GET['business_category_id']);
include 'includes/dbconnect.php';
try {
$sql = "SELECT * FROM sub_category
WHERE category_id = :category_id";
$s = $db->prepare($sql);
$s->bindValue(":category_id", $category_id);
$s->execute();
while($row = $s->fetch(PDO::FETCH_ASSOC)){
$sub_categories[] = array(
'id' => $row['id'],
'category_id' => $row['category_id'],
'name' => $row['name']
);
}
$sql2 = "SELECT * FROM category";
$s2 = $db->prepare($sql2);
$s2->execute();
while($row = $s2->fetch(PDO::FETCH_ASSOC)){
$categories[] = array(
'id' => $row['id'],
'name' => $row['name'],
);
}
}
catch (PDOException $e) {
$errMsg = "Error fetching data" . $e->getMessage();
include 'error.html.php';
exit();
}
include 'buy-a-biz.php';
exit();
}
[問題をPHPのためにJavascriptを(jqueryの)からのPOSTデータを渡す?](HTTPの可能性のある重複: //stackoverflow.com/questions/4191948/passing-post-data-from-javascriptjquery-to-php-problems) –
@IvanBarayevのおかげで、私はこの記事からソリューションを開発することができませんでした。 – JimB814