2015-01-02 4 views
0

Я использую функцию jquery ajax для получения некоторого значения и представления некоторых значений, до сих пор у меня нет проблем с отправкой значения, но когда дело доходит до сбора значения, оно показывает старое значение, а не новое.Как получить конкретное значение, используя 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 всего сайта, в то время как я хочу только данные скорости, обновленного значения переменной скорости, определенной в PHP.

В случае, если это поможет: функции обновление +1 в БД и обновление значения скорости после обновления, но это значение показывает после обновления страницы, поэтому я думал реализовать Jquery & Ajax теперь проблема является возвращаемые данные - это полный html всего моего сайта, а не только переменная скорости.

ОК, извините, это отредактированная версия. Я думал, что только jquery будет достаточно, но мы пойдем с полной ситуацией.

Я использую это на single.php на wordpress Так что есть уже много html помеченных ups и эхо до моей $ rate. Когда я пытаюсь получить переменную скорости, она печатает всю мою страницу.

<?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. Я должен использовать массив, а затем мне придется использовать его поверх страницы, в то время как это довольно сложно при нажатии на слово, поскольку заголовок уже передан с помощью навигации.

любое решение?

+0

Есть ли какие-либо ошибки на бревне сервера? – segarci

+0

'$ (" # bmup "). Html (data.find ('# bvup'). Val());' попробуйте это. – Jai

+0

показать ваш php-код –

ответ

0

Надеется, что это помогает вам

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

См. Обновленный вопрос –

Смежные вопросы