gpt4 book ai didi

php - 为 AJAX Post 抓取正确的变量 - 从 HTML/PHP 页面

转载 作者:行者123 更新时间:2023-11-30 10:29:16 26 4
gpt4 key购买 nike

在我的 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.

现在,当用户点击“投票”时,我只需要一个 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;正如您在上面看到的,它们是 reviewIduserId。 (注意 user_id 是登录用户,实际上存储为全局 PHP SESSION 变量。)

困难的部分是 HTML 是动态的,每个循环都会有不同的 review_id。 user_id 将相同,但我不确定如何将它从 SESSION var 获取到 JavaScript。注意:在 HTML 页面上的每个“循环”中,我确实可以访问我需要的 review_id php 变量 - 只是不确定将它放在哪里,所以我可以选择它在 jQuery/AJAX 中。

最佳答案

使用类而不是 ID 作为适当的标记,每个页面应该只有 1 个给定名称的 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));
?>

关于php - 为 AJAX Post 抓取正确的变量 - 从 HTML/PHP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17914154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com