0

私のサイトには、以下に投稿された JavaScript を実行する一連のチェックボックスがあります。問題は、チェックボックスから色を選択しても何のアクションも起こさず、Chrome コンソールに次のエラーが表示されることです。

GET ../store/indexMain.php?color=Khaki 500 (Internal Server Error) jquery-1.7.2.min.js:4
send jquery-1.7.2.min.js:4
f.extend.ajax jquery-1.7.2.min.js:4
f.fn.extend.load jquery-1.7.2.min.js:4
(anonymous function) www.tahara.es:68
f.event.dispatch jquery-1.7.2.min.js:3
h.handle.i

ここにjsがあります:

<script type="text/javascript">
    //http://jsbin.com/ujuse/1/edit
$(function() {
    $("input[type='checkbox']").on('change', function() {
        var boxes = [];
        // You could save a little time and space by doing this:
        var name = this.name;
        // critical change on next line
        $("input[type='checkbox'][name='"+this.name+"']:checked").each(function() {
            boxes.push(this.value);
        });
        if (boxes.length) {
            $(".loadingItems").fadeIn(300);
            // Change the name here as well
            $(".indexMain").load('indexMain.php?'+this.name+'=' + boxes.join("+"),
            function() {
                $(".indexMain").fadeIn('slow');
                $(".loadingItems").fadeOut(300);
            });

        } else {
            $(".loadingItems").fadeIn(300);
            $(".indexMain").load('indexMain.php', function() {
                $(".indexMain").fadeIn('slow');
                $(".loadingItems").fadeOut(300);
            });
        }
    });
});

indexMain.php からの PHP の追加

<?php
$colors = $_GET['color'];
if ($colors != '')
 {
            $colors = explode(' ', $colors);
            $parameters = join(', ', array_fill(0, count($colors), '?'));
            $items = $con -> prepare("SELECT * FROM item_descr WHERE color_base1 IN ({$parameters})");
            $items ->execute($colors);
            $count = $items -> rowCount();

}
else 
{

        $items = $con -> prepare("SELECT * FROM item_descr ORDER BY date DESC");
        $items -> execute();
        $count = $items -> rowCount();


}

$row_count = 0;
echo "<div>Showing ".$count."items</div>";
while($info = $items->fetch(PDO::FETCH_ASSOC)) 
{

?> 

ありがとう!

4

1 に答える 1

1

問題は JavaScript にあるのではなく、サーバー側にあります。

$(".indexMain").load('indexMain.php?'+this.name+'=' + boxes.join("+"), function() {
    $(".indexMain").fadeIn('slow');
    $(".loadingItems").fadeOut(300);
});

サーバーから何かをロードしようとしましたが、サーバーは 500 で応答しました。サーバー ログをチェックして、何が問題なのかを確認してください。

于 2013-01-16T00:45:20.233 に答える