背景: 病院の手術室用に PHP で生成されたシフト スケジューラを作成しています。X 軸に日を、Y 軸に OR をプロットしています。私は Jeditable を使用して、データをロードする選択からドロップダウンを生成する各セルをその場で編集しています。
PHP コード:
$query = $db->query('select sp.id, sp.sigla from lista_specializzandi sp where sp.id not in (select sp.id from lista_specializzandi sp, esigenze e where sp.id = e.specializzando and e.giorno='.$giorno.' and (e.tipologia=2 or e.tipologia=3 or e.tipologia=4 or e.tipologia =5 or e.tipologia=6 or e.tipologia=7))');
$esiSelect = array();
while ($disp = $db->fetch_array($query)) {
$esiSelect[$disp['id']] = $disp['sigla'];
}
Javascript:
<script>
$(document).ready(function() {
$(".turnistica").editable('save_turnistica.php', {
data : <?php echo json_encode($esiSelect); ?>,
type : 'select',
indicator : 'Salvo...',
tooltip : 'Clicca per modificare',
placeholder : ' ',
onblur : 'submit',
event : 'click',
submitdata : function(value, settings) {
return {"giorno" : $(this).attr('id_giorno'), "sala" : $(this).parent().attr('id_riga')};
}
});
});
</script>
テーブル:
<section class="fluid" id="flip-scroll">
<table id="foglioEsigenze" class="table-bordered table-striped table-condensed cf full">
<col class="col10">
<?php
foreach ($cals as $c)
echo
'<col class="dw'.$c->isFeriale.$c->isFestivo.'"></col>';
?>
<thead class="cf verde_trasp bold text-white">
<tr>
<th class="col1"> </th>
<?php
foreach ($cals as $c)
echo
'<th class="dw'.$c->isFeriale.$c->isFestivo.'"><span style="font-size:9px">'.substr($c->giornoNome, 0, 3).'</span> '.$c->d.'</th>';
?>
</tr>
</thead>
<tbody>
<?php
while ($s = $db->fetch_array($indice)) {
echo
'<tr class="Row" data-blocco="'.$s['blocco'].'" id_riga="'.$s['id'].'"><td style="text-align: left;">'.$s['sigla'].'</td>';
foreach ($cals as $g) {
echo
'<td class="turnistica" style="text-align: center;" id_giorno="'.$g->id.'">';
global $db;
$sql = 'select sp.sigla from turnistica t, lista_specializzandi sp where t.giorno = '.$g->id.' and t.riga='.$s['id'].' and t.specializzando = sp.id limit 1';
$query = $db->query($sql);
$sigla = $db->fetch_array($query);
echo $sigla['sigla'];
'</td>';
'</tr>';
}
}
?>
</tbody>
</table>
</section>
... ここまでは順調ですね!ここで、医師を列に挿入した後に医師を自動的に削除するドロップダウンを作成する必要があります。この解決策を考えましたが、なぜ機能しないのかわかりません。
1) すべてのロード コードを外部の php ファイルに移動しました。
<?php
require ('includes/initialise.php');
global $db;
$giorno = $_GET['giorno'];
$query = $db->query('select sp.id, sp.sigla from lista_specializzandi sp where sp.id not in (select sp.id from lista_specializzandi sp, esigenze e where sp.id = e.specializzando and e.giorno='.$giorno.' and (e.tipologia=2 or e.tipologia=3 or e.tipologia=4 or e.tipologia =5 or e.tipologia=6 or e.tipologia=7))');
$esiSelect = array();
while ($disp = $db->fetch_array($query)) {
$esiSelect[$disp['id']] = $disp['sigla'];
}
echo json_encode($esiSelect);
?>
2)要素の属性を追加するjavascriptでloadurlで呼び出しました
loadurl : "disponibili.php?giorno=" + $(this).attr("id_giorno"),
すべての問題は、私が渡している Javascript 変数に起因しています。しかし、私は問題を解決せずにたくさんグーグルしました。
どうすればこれを修正できますか?
@dcaswell: 2) の javascript 変数を loadurl ファイルに渡すことができないため、json リストに入力する前にアクションを実行できません。私は間違いなく何かが欠けています。どんな助けでも大歓迎です。ありがとう