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の完全な初心者なので、どこで問題を解決し始めるべきかを知りません!私はそれが最初に動作するように管理驚いた!
いつもどんな助力でも大歓迎です!
カイリー
'.view-count'はおそらく' load'イベントをサポートしていない要素です。 – GillesC
??わかりません? view-countはイメージのクラスですか?それはサファリで動作し、毎回、問題ありません...あなたは何を提案して問題を解決するでしょうか? – Kaylee
ブラウザのコンソールに何かエラーがありますか?他のブラウザ(FF、IE)はどうですか? [この類似の問題を参照](https://forum.jquery.com/topic/works-in-safari-but-no-other-browser-not-firefox-chrome-or-ie-why)。 – Vucko