我正在使用jquery ajax函数来获取一些值并提交一些值,到目前为止,我提交值没有问题,但是当涉及到收集值时,它显示的是旧值而不是新值。
我知道一种方法,如果您在同一页面上工作,我们可以定义 json 对象并从中选择值。
但我想知道是否有其他方法可以用来获取具体值。
(document).ready(function() {
$("#bmup").click(function(){
var upval = $.post(window.location,{rate:$("#bvup").val()},function(data){
alert(data);
$("#bmup").html(data);
});
});
});
这里返回的数据是整个网站的完整html,而我只想要rate的数据,即php中定义的rate变量的更新值。
如果有帮助: 该函数正在数据库中更新+1并更新更新后的速率值,但该值在页面刷新后显示,所以我想实现jquery和ajax,现在问题是返回的数据是我整个网站的完整html,而不是只是利率变量。
好吧,抱歉,这是编辑后的版本,我以为只有 jquery 就足够了,但这里我们介绍完整的情况。
我在 wordpress 的 single.php 上使用这个 所以在我的 $rate 之前已经有很多 html 标记和 echo 了。 当我尝试获取速率变量时,它会打印我的整个页面。
<?php
/**
* Singular Content Template
*/
?>
<?php get_header(); ?>
<?php $cuser = wp_get_current_user(); ?>
<div class="main wrap cf">
<div class="row">
<div class="col-8 main-content">
<?php while (have_posts()) : the_post(); ?>
<?php
$panels = get_post_meta(get_the_ID(), 'panels_data', true);
if (!empty($panels) && !empty($panels['grid'])):
get_template_part('content', 'builder');
else:
get_template_part('content', 'single');
endif;
?>
<div class="comments">
<div class="cntt">
<?php
//if(!isset($_COOKIE['rate'])) {
if($_POST['rate']=='up') {
$rate=get_post_meta($post->ID,'up',true);
$rate=$rate+1;
update_post_meta($post->ID,'up',$rate);
setcookie(rate, 1, time() + (86400 * 30), "/"); // 86400 = 1 day
}
if($_POST['rate']=='down') {
$rate=get_post_meta($post->ID,'down',true);
$rate=$rate+1;
update_post_meta($post->ID,'down',$rate);
setcookie(rate, 1, time() + (86400 * 30), "/"); // 86400 = 1 day
}
if(isset($_COOKIE['rate'])) {
echo "<div class='errormainbtn'> Only one vote is allowed ! </div>";
}
}
$totalup = get_post_meta($post->ID,'up',true);
$totaldn = get_post_meta($post->ID,'down',true);
?>
<input type='hidden' id='valval' value='<?php echo $rate; ?>' />
<div class="bothmainbtn">
<div class="btmainup">
<form method='POST' action="">
<input id="bvup" type=hidden name=rate value=down>
<input id="bmup2" class="tpbtn" type="submit" value=
'<?php
if ($totaldn != "" && $totaldn != 0) {
echo "Disagree: " . $totaldn;
}
else
{
echo "Disagree ?";
}
?>'
>
</form>
<div id="bmup">Click</div>
</div>
<div class="btmaindown">
<form method='POST' action="">
<input type=hidden name=rate value=up>
<input class="tpbtn" type=submit value=
'<?php
if ($totalup != "" && $totalup != 0) {
echo "Agree: ".$totalup;
}
else
{
echo "Agree ?";
}
?>'
>
</form>
</div>
</div>
<?php include 'leftsiderev.php';?>
<?php include 'rightsiderev.php';?>
<!-- Main working sheet -->
</div> <!-- comment-->
<?php endwhile; // end of the loop. ?>
</div>
<?php Bunyad::core()->theme_sidebar(); ?>
</div> <!-- .row -->
</div> <!-- .main -->
<?php get_footer(); ?>
我想要实现的是,当用户单击投票赞成或反对时,$totaldn 将具有我想要显示此更新值的新值。
如果我想实现json对象,我必须使用数组,然后我必须在页面顶部使用它,而这在wordpress中相当困难,因为标题已经通过导航传递了。
有什么解决办法吗?
试试这个:
<?php
$rate = getRate(); // grabs the rate
if($_POST) {
echo $rate;
}else { // if it is not post show the html
?>
<html>
<title></title>
<body>
// content goes here
</body>
</html>
<?php
}
?>