这是我的javascript。我想使用ajax在同一页面中获取jquery变量值到php变量。我以前打印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>
答案 0 :(得分:0)
你应该像这样添加PHP:
<?php
$total = $_POST['total'] ;
echo $total;
?>
答案 1 :(得分:0)
根据问题作者的评论添加修改。
由于您使用相同的页面使用jquery发布数据,因此您应该刷新页面。为ajax调用(javascript部分)修改这样的代码。
$.post(window.location, {title: title}, success: function(data) {
//do something here
});
并将其添加到页面代码的顶部。
<?php
if(isset($_POST['total'])) {
echo $_POST['total'];
}
?>
答案 2 :(得分:0)
顺便说一句,您的total
变量只能通过更改方法匿名回调函数来访问! <{1}}将在你的ajax电话中total
。
undefined
答案 3 :(得分:0)
你应该在函数之前在javascript中声明你的'total'变量。
var total = 0;
$('#roomOptions #select1').change(function () {
total = 0;
$('#roomOptions #select1').each(function () {
total += parseInt($(this).val());
});
$('#roomOptions #roomOptions_total').html(total);
});
或者在ajax init之前得到它
<script>
total = $("#roomOptions #roomOptions_total").html();
$.ajax({
type: "POST",
url: "getrooms.php",
data:{ total: total },
success: function(data){
console.log(data);
}
})
</script>
您可以访问php中的var
<?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>
答案 4 :(得分:0)
我认为问题在于你的代码序列。 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>