【发布时间】:2010-09-14 12:53:51
【问题描述】:
我实际上正在使用 PHP 开发一个预订系统,并且我创建了一个脚本,用于搜索 MySql 数据库,检查 X 天是否被占用(或未被占用),并将未占用的日期存储在一个数组中。之后,我将数组返回给打印所有日期的函数,将这些日期传递给 jQuery Datepicker 数组变量,以便 Datepicker 知道它应该显示哪个日期。问题是,当我打印这个数组时,它会在开始打印日期之前打印很多新行。
这是在 html 文件中打印数组的代码:
var datasDisponiveis =
<?php
if (!(isset($_SESSION["dias"]))) {
$_SESSION["dias"] = datasDisp();
}
echo "["; imprimeDatas($_SESSION["dias"]); echo "];";
?>
翻译:dias = 天,datasDisp = 创建可用日期数组的函数,imprimeDatas = printDates(一些葡萄牙语类作为奖励哈哈)
这里是datasDisp():
function datasDisp () {
include "conecta.php";
$consulta = "SELECT id,mes,dia,ano FROM agenda";
$data = mysql_query($consulta,$conexao);
$vetordata = mysql_fetch_array($data);
$sql = "SELECT COUNT(*) FROM domingo";
$horas_disponiveis = mysql_query($sql,$conexao);
$vetor= mysql_fetch_array($horas_disponiveis);
$semana = array('domingo'=>0,'segunda'=>0,'terça'=>0,'quarta'=>0,'quinta'=>0,'sexta'=>0,'sabado'=>0);
foreach ($semana as $dia => $valor) {
$sql = "SELECT COUNT(*) FROM $dia";
$horas_disponiveis = mysql_query($sql,$conexao);
$vetor= mysql_fetch_array($horas_disponiveis);
$semana[$dia] = $vetor[0];
}
$atual = new DateTime(date("Y-m-d"));
$atual->modify('+10 day');
$final = dataFinal();
$i = 0;
$j = 1;
while ($atual->format('j/n/Y') != $final) {
$ver_atual = explode("/",$atual->format('j/n/Y'));
$dia_s = dia_semana($ver_atual[0],$ver_atual[1],$ver_atual[2]);
if (verificaDataDisponivel($ver_atual[0],$ver_atual[1],$ver_atual[2],$semana[$dia_s])) {
$datad[$i] = $atual->format('n/j/Y');
$i++;
}
$atual->modify('+1 day');
}
return $datad;
}
还有 imprimeDatas():
function imprimeDatas ($datas) {
foreach ($datas as $dia => $valor) {
echo "'".$datas[$dia]."', ";
}
}
我希望它不会太混乱而难以理解。
打印的内容:
var datasDisponiveis =
['9/24/2010', '9/25/2010', '9/26/2010', '9/27/2010', '9/28/2010', '9/29/2010', '9/30/2010', '10/1/2010', '10/2/2010', '10/3/2010', '10/4/2010', '10/5/2010', '10/6/2010', '10/7/2010', '10/8/2010', '10/9/2010', '10/10/2010', '10/11/2010', '10/12/2010', '10/13/2010', '10/14/2010', '10/15/2010', '10/16/2010', '10/17/2010', '10/18/2010', '10/19/2010', '10/20/2010', '10/21/2010', '10/22/2010', '10/23/2010', '10/24/2010', '10/25/2010', '10/26/2010', '10/27/2010', '10/28/2010', '10/29/2010', '10/30/2010', '10/31/2010', '11/1/2010', '11/2/2010', '11/3/2010', '11/4/2010', '11/5/2010', '11/6/2010', '11/7/2010', '11/8/2010', '11/9/2010', '11/10/2010', '11/11/2010', '11/12/2010', '11/13/2010', '11/14/2010', '11/15/2010', '11/16/2010', '11/17/2010', '11/18/2010', '11/19/2010', '11/20/2010', '11/21/2010', '11/22/2010', '11/23/2010', '11/24/2010', '11/25/2010', '11/26/2010', '11/27/2010', '11/28/2010', '11/29/2010', '11/30/2010', '12/1/2010', '12/2/2010', '12/3/2010', '12/4/2010', '12/5/2010', '12/6/2010', '12/7/2010', '12/8/2010', '12/9/2010', '12/10/2010', '12/11/2010', '12/12/2010', '12/13/2010', '12/14/2010', '12/15/2010', '12/16/2010', '12/17/2010', '12/18/2010', '12/19/2010', '12/20/2010', '12/21/2010', '12/22/2010', '12/23/2010', '12/24/2010', '12/25/2010', '12/26/2010', '12/27/2010', '12/28/2010', '12/29/2010', '12/30/2010', ];
提前致谢!
【问题讨论】:
-
你可能想要做一些事情来抑制你的数组中的最后一个。
-
您可以将
imprimeDatas调用更改为简单的implode(", ", $_SESSION["dias"])。 -
我尝试更改,但它打印了所有新行但没有日期。
-
糟糕,我的错。你需要
echo implode...。
标签: php jquery calendar newline