[英]Grabbing correct variables for AJAX Post - from HTML/PHP page
在我的HTML
,我通過PHP
/ MySQL
查詢結果循環,並做一些使這樣的HTML
作為最終結果:
loop 1
<p>- user review-</p>
<a href=#" id="upvote">Up Vote</a>
loop 2
<p>- user review-</p>
<a href=#" id="upvote">Up Vote</a>
etc.
現在,當用戶點擊“up vote”時,我只想要一個AJAX POST
發送到一個如下所示的PHP
腳本:
// jQuery / AJAX - separate file linked to `HTML`
$('#upvote').onclick(function() {
var user_id = ??????;
var review_id = ?????;
$.ajax({
url : "search_query.php",
type : "POST",
dataType: "json",
data : {
userId : user_id,
reviewId : review_id
},
success : function(data) {
// do stuff
}
});
// php
<?php
$review_id = $database->escape_value(trim($_POST['reviewId']));
$user_id= $database->escape_value(trim($_POST['userId']));
// Upvote Method
$result = Data::upVoteReview($review_id, $user_id);
// Not discussed in question
$output["result"] = $result;
print(json_encode($output));
?>
我的問題是:我需要從HTML
獲取兩個變量並放入AJAX POST
; 如上所示,它們是reviewId
和userId
。 (注意user_id
是登錄用戶,實際上存儲為全局PHP
SESSION
變量。)
困難的部分是HTML是動態的,每個循環都有不同的review_id。 user_id將是相同的,但我不知道如何從SESSION
var到JavaScript。 注意:在HTML
頁面的每個“循環”中,我都可以訪問我需要的review_id
php變量 - 只是不確定將它放在哪里,所以我可以在jQuery
/ AJAX
。
使用類而不是ID作為propper標記,每頁應該只有一個給定名稱的ID。
HTML
loop 1
<p>- user review-</p>
<a href="#" class="upvote" data-review="1">Up Vote</a>
loop 2
<p>- user review-</p>
<a href="#" class="upvote" data-review="2">Up Vote</a>
etc.
JS
// jQuery / AJAX - separate file linked to `HTML`
$('.upvote').on('click', function(e) {
e.preventDefault();
var review_id = this.data('review');
$.ajax({
url : "search_query.php",
type : "POST",
dataType: "json",
data : {
reviewId : review_id
},
success : function(data) {
// do stuff
}
});
PHP
<?php
$review_id = $database->escape_value(trim($_POST['reviewId']));
// Upvote Method
$result = Data::upVoteReview($review_id, $_SESSION['user_id']);
$output["result"] = $result;
print(json_encode($output));
?>
您的代碼中似乎存在相當多的問題,我注意到的前幾個問題如下:
第一個:
loop 1
<p>- user review-</p>
<a href=#" id="upvote">Up Vote</a> <------------------------------Here
loop 2
<p>- user review-</p>
<a href=#" id="upvote">Up Vote</a> <-------------------------------Here
etc.
你錯過了開頭的引號,即它應該是href="#"
而不是href=#"
第二是:
$('#upvote').onclick(function() {
也許應該是在jQuery沒有onclick
功能,它肯定有on
功能。
$('#upvote').on('click', function() {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.