我有一个表单根据收到/检查的数据显示引号。
这是一个非刷新页面,因此它使用ajax获取提交点击,然后将数据发送到php文件。
主要问题是复选框总是被检查,并且回显“开启”。我需要复选框正常工作,默认情况下取消选中,然后当用户点击它时,并提交表单,他们将实际检查。
这些是复选框
<div class="checkbox">
<label><input type="checkbox" name="lighting" id="lighting"><font color="#2C3E50" value="">Lighting</label></font>
<label><input type="checkbox" name="heating" id="heating"><font color="#2C3E50" value="">Heating</label></font>
<label><input type="checkbox" name="dancefloor" id="dancefloor"><font color="#2C3E50" value="">Dancefloor</label></font>
<label><input type="checkbox" name="internaldressing" id="internaldressing" value=""><font color="#2C3E50">Internal Dressing</label></font>
</div>
我尝试删除value属性,我尝试添加checked属性。没有任何帮助。
这是AJAX文件的一部分:
var dataString = 'eventtype=' + eventtype + '&peoplecount=' + peoplecount + '&location=' + location + '&eventdate=' + eventDate + '&lighting=' + lighting + '&heating=' + heating + '&dancefloor=' + dancefloor + '&internaldressing=' + internaldressing;
$.ajax({
type: 'POST',
url: 'process.php',
data: dataString,
success: function(data) {
if( data == '0' )
alert( 'Błędne dane logowania!!!' );
else
$('#results').html(data);
}
});
event.preventDefault();
然后我的PHP看起来像这样。
if(isset($_POST)){
// Total price of quote.
$price = 0;
// Prices of extras.
$lighting_price = 0;
$heating_price = 0;
$dancefloor_price = 0;
$internaldressing_price = 0;
// Stage I VARIABLES
$eventType = $_POST['eventtype'];
$peoplecount = (int)$_POST['peoplecount'];
$location = $_POST['location'];
$eventDate = $_POST['eventdate'];
// Stage II VARIABLES
$lighting = $_POST['lighting'];
$heating = $_POST['heating'];
$dancefloor = $_POST['dancefloor'];
$internaldressing = $_POST['internaldressing'];
// If there are less than 70 guests then make base price 650.
if($peoplecount < 70){
$price = $price + 650;
$lighting_price = 75;
$heating_price = 150;
}
// If there are between 71 and 130 guests then make base price 950.
if(($peoplecount >= 71) && ($peoplecount <= 130)){
$price = $price + 950;
$lighting_price = 150;
$heating_price = 250;
}
if (isset($_POST['lighting'])){
echo "IM TICKEED!!!!!!!";
}
if (isset($_POST['heating'])){
echo "IM TICKEED!!!!!!!";
}
echo $eventType . "<br>";
echo $peoplecount . "<br>";
echo $lighting . "<br>";
echo $heating . "<br><br>";
echo $price;
}
感谢您的帮助。
答案 0 :(得分:2)
首先是第一件事。请为您的复选框添加值属性。它们将作为值传递给您的网址。
请检查是否选中了复选框。尝试放置已检查的伪选择器。
$('#lighting:checked').val()
如果未选中该复选框,则会给出未定义的值,因此请在分配值时检查该条件。
var lighting = ($('#lighting:checked').val() === undefined )? null : $('#lighting:checked').val();
上面这行不会对代码产生太大的影响,但有一件好事。
在将其分配给datastring变量时,您可以检查它是否为null或未定义,并附加类似的字符串。如果变量有值,则将其附加到datastring变量,该变量将作为ajax url传递。
希望这能解决您的问题。
答案 1 :(得分:0)
在javascript ajax语法中,将此代码放在ajax请求成功函数
中document.getElementById('lighting').checked = false;
通过更改ID名称
为其他复选框执行此操作