2015-05-07 7 views
0

Это мой javascript. Я хочу получить значение переменной jquery переменной php на одной странице с помощью ajax. Я использовал для печати php-переменной, но есть ошибка. Я был бы очень благодарен, если кто-нибудь сможет мне помочь.Как передать значение переменной jquery переменной php?

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#roomOptions #select1').change(function() { 
     var total = 0; 
     $('#roomOptions #select1').each(function() { 
      total+=parseInt($(this).val());  
     }); 
     $('#roomOptions #roomOptions_total').html(total); 
     });   

    $('#roomOptions #select2').change(function() { 
     var total1 = 0; 
     $('#roomOptions #select2').each(function() { 
      total1+=parseInt($(this).val());  
     }); 
     $('#roomOptions #roomOptions_total1').html(total1); 
    }); 
}); 

$.ajax({ 
    type: "POST", 
    url: "getrooms.php", 
    data:{ total: total }, 
    success: function(data){ 
     console.log(data); 
    } 
}) 
</script> 
+1

* «В переменных php, называемых неопределенным индексом, есть ошибка» * - Продолжайте ... вы не закончили это. Мы должны отладить это для вас? –

+0

ну нет php здесь, пожалуйста, включите его – xNeyte

+0

@ Dim5230: вам нужно передать свое окончательное общее значение в скрытом поле и получить это значение и передать это значение при вызове ajax. – lalitpatadiya

ответ

0

Вы должны добавить PHP примерно так:

<?php 
$total = $_POST['total'] ; 
echo $total; 

?> 
+0

echo $ id следует изменить на echo $ total; – Dim5230

+0

Откуда этот «$ id»? – Tushar

+0

Извините, что я спешил, я внес изменения ... Спасибо. – Raj

0

Добавление изменения в соответствии с комментариями автора вопроса.

Поскольку вы используете одну и ту же страницу для публикации данных с помощью jquery, вам необходимо обновить страницу. Измените код, подобный этому для вызова ajax (часть javascript).

$.post(window.location, {title: title}, success: function(data) { 
    //do something here 
}); 

И добавьте это в начало страницы.

<?php 
    if(isset($_POST['total'])) { 
    echo $_POST['total']; 
    } 
?> 
+0

Существует ошибка под названием Undefined index: total in .... Как это исправить? – Dim5230

+0

Когда вы получили эту ошибку? Вы пытались напрямую обращаться к getrooms.php? – Sak90

+0

Да, я использовал эти функции на одной странице – Dim5230

0

BTW, ваша total переменная может быть доступна только с помощью функции обратного вызова анонимного метода изменения !. total будет undefined в вашем вызове ajax.

$('#roomOptions #select1').change(function() { 
    var total = 0; 
    $('#roomOptions #select1').each(function() { 
     total += parseInt($(this).val()); 
    }); 

    $('#roomOptions #roomOptions_total').html(total); 

    $.ajax({ 
     url: getrooms.php, 
     type: 'POST', 
     data: { 
      "total": total 
     } 
    }); 
}); 
+0

Как насчет php-кода. – Dim5230

+0

Ошибка в коде Undefined index: total in .... Это мой php-код Dim5230

+0

Возможно, '$ _POST ['total']' undefined !. Можете ли вы эхо '$ _POST ['total']' ?, вы можете использовать метод 'isset()' для определения того, установлена ​​ли переменная и не является NULL. –

0

Вы должны объявить свою «итоговую» переменную в javascript перед вашей функцией.

var total = 0; 
$('#roomOptions #select1').change(function() { 
    total = 0; 
    $('#roomOptions #select1').each(function() { 
     total += parseInt($(this).val()); 
    }); 
    $('#roomOptions #roomOptions_total').html(total); 
}); 

Или получить его перед АЯКС инициализации, как этот

<script> 
    total = $("#roomOptions #roomOptions_total").html(); 
    $.ajax({ 
     type: "POST", 
     url: "getrooms.php", 
     data:{ total: total }, 
     success: function(data){ 
      console.log(data); 
     } 
    }) 
    </script> 

Вы можете получить доступ к вашей вар в PHP

<?php echo $_POST['total']; ?> 

Вы можете увидеть, что внутри общей перед AJAX отправить его

<script> 
     total = $("#roomOptions #roomOptions_total").html(); 
     $.ajax({ 
      type: "POST", 
      url: "getrooms.php", 
      data: { total: total }, 
      success: function(data){ 
       console.log(data); 
      }, 
beforeSend: function() { 
    console.log(total); 
    } 
     }) 
     </script> 
+0

Эти функции javascript и коды php находятся на одной странице – Dim5230

+0

Это не имеет значения. Вы проверяли, что внутри общего var перед отправкой? – Randomius

+0

Да. Это также не работает. – Dim5230

0

Я думаю, что p roblem с вашей последовательностью кода. Вызов ajax выполняется до вызова document.ready. Если вы преобразуете его в нечто подобное, то может быть оно будет работать.

<script type="text/javascript"> 
$(document).ready(function() { 
    var total = 0; 
    $('#roomOptions #select1').change(function() { 
     total = 0; 
     $('#roomOptions #select1').each(function() { 
      total+=parseInt($(this).val());  
     }); 
     $('#roomOptions #roomOptions_total').html(total); 
     });   

    $('#roomOptions #select2').change(function() { 
     var total1 = 0; 
     $('#roomOptions #select2').each(function() { 
      total1+=parseInt($(this).val());  
     }); 
     $('#roomOptions #roomOptions_total1').html(total1); 
    }); 


$.ajax({ 
    type: "POST", 
    url: "getrooms.php", 
    data:{ total: total }, 
    success: function(data){ 
     console.log(data); 
    } 
}) 
}); 
</script> 
Смежные вопросы