我正在尝试将一个JavaScript变量发送到PHP,但不确定如何做到这一点,有些事情已经说过Ajax,但我以前从未使用它,也无法理解它。有谁知道最简单的方法是什么?我试图在我的数据库中填充的列称为“cogs”。
我有以下JavaScript代码:
<script>
$(document).ready(function() {
$('#duration-select').change(function() {
var cogs = $('#cogsday').html();
cogs = cogs.replace(/\D/g,'');
var x =$('#duration-select').val();
var y = cogs * x;
$('#request').removeClass('hidden');
$('#duration-value').text('Total cost for this duration = ' + (y) + ' cogs');
if($(this).val() !== '') {
} else {
$('#duration-value').text('');
}
});
$('#request').click(function() {
var cogs = $('#cogsday').html();
cogs = cogs.replace(/\D/g,'');
var x =$('#duration-select').val();
var y = cogs * x;
$('#total').text(y);
});
});
</script>
以下HTML代码:
<label id="total"></label>
这是我尝试发布数据的地方,除了$ cost之外,其他所有内容都在发布:
<form name="form" method="post">
<div class="modal-footer">
<?php
if ($row3['availability'] === 'Available') {
if (isset($_POST['request'])) {
$to_id = $row3['customerid'];
$from_id = $_SESSION['customerid'];
$time_sent = date('Y-m-d H:i:s');
$subject = 'Request for ' . $row3['title'];
$title = $row3['title'];
$listingid = $listingid;
$cost = $_POST['total']; //posting 0
$message = $customer_data['first_name'] . ' ' . $customer_data['last_name']
$request = mysql_query("INSERT INTO messages (to_id, from_id, listing_id, time_sent, subject, message, cogs, messagenumber, title, msgrand) VALUES ('$to_id', '$from_id', '$listingid', '$time_sent', '$subject', '$message', '$cost', '1', '$title', '$randomString')") or die(mysql_error());
}
}
?>
<input type="submit" class="btn btn-success" name="request" value="Yes" />
<input type="submit" class="btn btn-danger" data-dismiss="modal" value="No" />
</div>
</form>
然后我试图将标签id = total的值发布到我的db或JavaScript变量(y)。问题是0总是被发送到DB,而它应该是标签中id为total的值。
答案 0 :(得分:1)
对隐藏变量使用name参数,它将自动传递给PHP。
<label id="total"></label>
<input type="hidden" name="total" id="nameID"/>
在$('#total').text(y);
以下的javascript中写$('#nameID').val(y);
。一切都会正常运作。
您使用了total
标签,但$ _POST仅识别输入类型,因此请使用input type=....
而不是标签,div等。
答案 1 :(得分:0)
你已经创建了一个输入类型,它的值将由该javascript设置,然后你就可以在php代码中获得$ cost值
<input type="hidden" value="" name="total" id="total">
..................
$("#total").val(y);
答案 2 :(得分:-1)
您可以使用它来发送变量....
<input type="text" id="name" class="name" placevalue="Enter you name" required /><br><br>
<input type="text" id="email" class="email" placevalue="Enter you name" required /><br><br>
<button id= "det_submit" onclick="submit_det()"> Submit </button>
<script>
function submit_det() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
if(name != "" && email != "") {
$.post(
'xx.php',
{
name : document.getElementById("name").value,
email1 : document.getElementById("email").value,
},
function(data){
alert(data);
});
} else {
alert("empty");
}
}
</script>
这里是xx.php
<?php
if(isset($_POST['name']) && isset($_POST['email1'])) {
$name = $_POST['name'];
$email = $_POST['email1'];
//code to insert into your database......
}
?>
答案 3 :(得分:-1)
为此隐藏参数使用ID和名称
<label id="total"></label
<input type="hidden" name="name" id="name"/>
并在jQuery中编辑像这样的代码
$('#total').text(y);
$('#nameID').val(y);
希望它能起作用