2016-04-12 18 views
0

OK、私はjQuery、ajaxなどについて何も知りません。私はjQuery/ajaxスクリプトを持っています。私が必要とするものを修正しました。イメージのロード時には、 "views"を1増やしてmysqlデータベースを更新します。これは私がサファリにいれば完璧に動作しますが、何らかの未知の理由により、動作していないか、少なくとも最高で間欠的です。私はまだ他のブラウザを試していません。ここjQuery load()がクロムで動作していませんか?

はjQueryのです:

$('.view-count').load(function(){ 
var ClientID=$(this).attr('data-ClientID'); 
$.ajax({url:"inc/view-count.php?ClientID="+ClientID,cache:false,success:function(result){ 
    return true; 
}}); 
}); 

クラスとデータのClientIDを含み、HTML/PHP:

$output .= '<div class="col-xs-12 col-sm-6 col-md-4 col-lg-4"><a href="app.php?id=' . $id . '"><img class="img-responsive center-block img-border view-count" data-ClientID="' . $id . '" src="images/efits/' . $efit . '" alt="' . $bname . '" /></a></div>'; 

、最終的にビューcount.php:

$clientID = (int) $_GET['ClientID']; 

try { 
$querySql = 'SELECT * FROM clients WHERE id LIKE :clientid'; 
$countquery = $db->prepare($querySql); 
$countParams = array(':clientid'=>$clientID); 
$countquery->execute($countParams); 
$result = $countquery->fetch(PDO::FETCH_ASSOC); 
$views = $result['views']; 

} catch (PDOException $e) { 
echo 'failed to get client views'; 
} 

try { 
$countSql = 'UPDATE clients SET views=:newview WHERE id LIKE :id'; 
    $count = $db->prepare($countSql); 
    $countParams = array(':newview' => $views+1,':id' => $clientID); 
    $count->execute($countParams); 

} catch (PDOException $e) { 
echo "failed to increase view count"; 
} 

なぜ私はクロムに問題がありますが、サファリではありませんか?それは画像がキャッシュされているとは何か?またはコードの一部が廃止予定ですか?私が言ったように、私はjQuery/ajaxの完全な初心者なので、どこで問題を解決し始めるべきかを知りません!私はそれが最初に動作するように管理驚いた!

いつもどんな助力でも大歓迎です!

カイリー

+0

'.view-count'はおそらく' load'イベントをサポートしていない要素です。 – GillesC

+0

??わかりません? view-countはイメージのクラスですか?それはサファリで動作し、毎回、問題ありません...あなたは何を提案して問題を解決するでしょうか? – Kaylee

+0

ブラウザのコンソールに何かエラーがありますか?他のブラウザ(FF、IE)はどうですか? [この類似の問題を参照](https://forum.jquery.com/topic/works-in-safari-but-no-other-browser-not-firefox-chrome-or-ie-why)。 – Vucko

答えて

0

おかげでOK ...私はこの上でいくつかの研究を行って、最後の数時間を費やしてきた、と私は、少なくとも私の作品解決策を見つけました。

まず、私はローカルホストで作業していました。ローカルホストで作業しているときに、load()はクロムで動作しません。同じ原点ポリシーのため、このフィードを参照してください。jQuery .load() not working in Chrome

第2に、ファイルをサーバーにアップロードしても同じ問題が発生していましたが、一部の調査では、ロードされていた画像がクロムでキャッシュされていたため、jqueryスクリプトを実行しませんでした。 src URLの最後にユニークなものを追加すると、新しい画像と見なされるため、キャッシュではなくサーバーからイメージが読み込まれます。個人的に、$ time = date(his)のPHP変数を作成しました。そして、これは2番目のユニークな二だろう知って、そして(今では

src="image-file-path.jpg?unique=<?php echo $time; ?>" 

私はそれが画像をロードするためにキャッシュを使用doesntのリクエストを送信するたびのような画像srcにこれを追加しました、そしてので、私のjQueryが実行されますyaaay)!これは、同じ問題を抱えている人に役立ちます。

関連する問題