如何使用 jquery ajax 获取特定值

How to get specific value using from jquery ajax?

本文关键字:获取 ajax 何使用 jquery      更新时间:2023-09-26

我正在使用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就足够了,但在这里我们了解完整的情况。

我在单.php WordPress 上使用它所以在我的$rate之前已经有很多 html 标记和回声。当我尝试获取速率变量时,它正在打印我的整个页面。

<?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:&nbsp;" . $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:&nbsp;".$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 对象一样,我必须使用数组,然后我将不得不在页面顶部使用它,而这在 word press 中非常困难,因为标题已经与导航一起传递。

任何解决方案?

希望对您有所帮助

<?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 
        }
 ?>