SQL의 등급 데이터를 표시하는 데 별 등급 시스템을 사용하고 있습니다. 등급을 매길 수있는 각 항목에는 고유 식별자 변수 $ id가 있고 등급 tabl의 각 등급에는 고유 식별자 $ storyidr이 있습니다. 나는 디스플레이에이 스크립트를 싶습니다AJAX가 JSON 문자열을 구분하지 않음
- 평균 평점
- 항목이 평가 된 횟수.
값은 retirevable이지만 함께 페이지에 표시되며이를 구분하는 방법을 볼 수 없습니다. 평균 등급이 4이고 200 회 평가 된 품목의 경우 예입니다. 사용자가처럼 보이는 AJAX를 통해 데이터 반환을 클릭 할 때 : 들어 "200"
- 'response2'4 "(200)"
나는 분리해서 할 수 있도록하고 싶습니다 'response1' 'response2'200
- : 그들처럼 보이게하기
HTML 페이지
<div id="products" style=""> <div class="rateit" data-storyidr="<?php echo $id; ?>"> </div> <div class="averagevote"> <div style="display:block;" id="response<?php echo $id; ?>"><?php echo $avgratep; ?></div><br> <div style="display:block;" id="response2<?php echo $id; ?>">RaTeD <?php echo $rankcount; ?> TiMeS</div> </div> </div> <?php endwhile; mysqli_close($connection); ?> <script type ="text/javascript"> $('#currentslide .rateit').bind('rated reset', function (e) { var ri = $(this); var value = ri.rateit('value'); var storyidr = ri.data('storyidr'); ri.rateit('readonly', true); $.ajax({ dataType : 'json', url: 'rate.php', data: {storyidr: storyidr, value: value}, type: 'POST', success: function (data) { $('#response'+storyidr).replaceWith('Avg rating ' + data.avg + '/5'); $('#response2'+storyidr).replaceWith('Rated ' + data.cnt + ' times'); }, error: function (jxhr, msg, err) { $('#response').append('<li style="color:red">' + msg + '</li>'); } }); }); </script>
PHP
<?PHP $storyidr=$_POST['storyidr']; $mysqli = mysqli_connect($dbhost,$dbusername,$dbpasswd,$database_name) or die ("Couldn't connect to server."); if (mysqli_connect_errno($mysqli)) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql = "INSERT INTO ratings (storyidr, rank, entry_date) VALUES ('$_POST[storyidr]','$_POST[value]',now());"; $sql .= "SELECT AVG(rank) AS avrank, COUNT(rank) AS countrank FROM ratings WHERE storyidr = $storyidr"; if($mysqli->multi_query($sql)) { $mysqli->next_result(); if ($result = $mysqli->store_result()) { $data = mysqli_fetch_assoc($result); $avrank = $data['avrank']; $countrank = $data['countrank']; $avrankr = round($avrank,2); if(is_null($avrank)){$avrank ="null";} echo json_encode(array('avg' => $avrankr, 'cnt' => $countrank)); } } ?>
'$ 아약스 ({dataType와 'JSON', ...});' – barell
당신 JS Fi를을 le, AJAX 호출에 참여했습니다. 다른 옵션과 마찬가지로 ... – barell
@lazel 질문에 괄호를 제거하고 코드 줄을 추가하는 것은 적절하지 않습니다. –