【发布时间】:2019-03-05 21:14:55
【问题描述】:
用户从 dropdwon 菜单中选择一个或多个工作日
这里是代码
<table class="striped display" cellspacing="0" width="100%" id="myTable">
<tbody>
<?php for($i = 1; $i <=5; $i++ ){?>
<tr id="row<?php echo $i?>">
<td class="input-field col s2">
<label>Week Days</label>
<select id="week_days<?php echo $i;?>" data-rel="chosen" name="week_days<?php echo $i;?>[]" class="form-control" multiple="multiple">
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
</select>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<a id="more_btn" class="right" href="javascript:void(0);"><img src="../../assets/images/icons/add-icon.ico" width="23px" title="Add More"/></a>
第一次用户在点击添加更多锚标记时选择单个或多个工作日通过警报检查工作日的值,如果响应等于 1,则将使用 ajax 从数据库检查此表行,然后显示警报消息TimeTable Found 在提醒此消息后用户更改工作日选择,那么工作日的值将在提醒消息中为 null.. 那么如何在用户更改时获取工作日的值通过点击添加更多锚标签来选择工作日
问题是工作日的第一次值正确,但是当数据库中存在工作日值时,用户更改工作日选择,因此工作日的值为空。为什么它得到一个空值而不是 1,2,3,4,5?
<script type="text/javascript">
var j=1;
$('#more_btn').click(function() {
j++;
var u = j-1;
var prev_weekdays = $('#week_days'+u).val();
var weekDay_field = prev_weekdays.toString().split(",");
var weekDay1 = weekDay_field[0];
var weekDay2 = weekDay_field[1];
var weekDay3 = weekDay_field[2];
var weekDay4 = weekDay_field[3];
var weekDay5 = weekDay_field[4];
$.ajax({
type: "POST",
url: "check_timetable.php",
data: {weekday: prev_weekdays},
success: function(result) {
var value = $.trim(result);
if (value == "1"){
alert('TimeTable Found');
} else{
alert("enter");
}
},
});
});
</script>
Ajax 调用 PHP 文件检查工作日值是否存在于数据库中
<?php
require_once("../../assets/db_connect.php");
if(!empty($_REQUEST["weekday"])) {
$weekday = $_REQUEST['weekday'];
$weekdays;
foreach ($weekday as $WeekDay){
$WD .= $WeekDay.",";
} $weekdays =rtrim($WD,',');
$TimeTable_Row = mysql_query( "SELECT * from tbl_timetable where week_days in (".$weekdays."));
$RowCount1 = mysql_num_rows($TimeTable_Row);
if($RowCount1>0){
echo 1;
} else {
echo 0;
}
}?>
【问题讨论】:
-
您的查询缺少报价
(".$weekdays."));;查看语法突出显示,它显示有错误。那是你的真实代码吗?那应该读作(".$weekdays.")"); -
我解决了这个语法错误,但当工作日值存在于数据库中时仍然显示空值
-
你能
echo $TimeTable_Row或var_dump($TimeTable_Row)吗?查询看起来像您期望的那样吗?你能提供表模式吗?还请用已解决的语法错误更新您的问题。 -
我还相信您将工作日值的完整数组插入到 mysql
in函数中?那也行不通。您必须执行implode()。 -
"SELECT * FROM tbl_timetable WHERE week_days IN('" . implode( "', '", $weekdays ) . "')"
标签: javascript php jquery html mysql