<?PHP
require("../config.php");
if(isset($_GET['idSelect'])) {
$ps_id = $_GET["SelectedInd"];
function full_name_to_short ($full_name, $format="A b. c.") { //ПіП скорочувач
$format_keys = array("A", "B", "C"); $short_name = $format;
foreach ($format_keys as $index => $word) {
$short_name = str_replace($word, $words[$index], $short_name); }
return $short_name;
} // https://gist.github.com/fdcore/05029aeba743650a15af
header('Content-Type: application/json;charset=utf-8'); $query='SELECT id, pr, im, pb FROM `workers` WHERE `ps`= '.$ps_id;
$result = mysqli_query($db, $query); //$db = mysqli_connect('127.0.0.1:3306','root','','test1'); $pip = full_name_to_short($rows["pr"]." ".$rows["im"]." ".$rows["pb"]); //Скорочуємо ПіП
$arr[$rows['id']]=$pip;
}
//Возвращаем данные в JS в JSON-формате (XMLHttpResponse)
}
{
echo "<pre>";
//здесь должны сохраняться данные.
echo "</pre>Данные успешно сохранены!";
}
######################################################
//$Position, $Brigade, $Place должны выбираться из БД
$res_posady = mysqli_query($db,"SELECT * FROM posady ORDER BY `id` ASC"); $arrp[] = $posady;
}
#$Position = [0=>"Должность", 1 => "Haчальник", 2 => "Водитель", 3 => "Рабочий"];
$Brigade = 204;
$Place = "Станция";
########################################################################
if(isset($_GET['p'])){$num_rows=$_GET['p']+1;}else{$num_rows = 1;} # if(isset($_GET['m'])){$num_rows=$_GET['m']-1;} # if($num_rows < 6){echo '<a href="?p='.$num_rows.'">Плюс</a>';} #
if($num_rows > 1){echo '<a href="?m='.$num_rows.'">Мінус</a>';} #
########################################################################
$NumberOfWorkerInBrigade = $num_rows; //мах. кол-во в бригаде должно вводится или из config
$PositionOpt = "";
foreach($arrp as $id)
$PositionOpt.="<option value=".$id['id'].">".$id['posada']."</option>";
$tr = "";
$n = 0;
while( ++$n <= $NumberOfWorkerInBrigade )
$tr .= <<<HTML
<tr>
<td>$n</td>
<td>$Brigade</td>
<td>$Place</td>
<td>
<select id="Position$n" name="Position$n"><option value="">Посада</option>$PositionOpt</select>
</td>
<td>
<select id="NamePosition$n" name="NamePosition$n"></select>
</td>
<td></td>
</tr>
HTML;
echo <<<HTML
<html>
<head>
<title>CreateOption</title>
<style>
body,select{
font-family:arial;
color: #0000FF;
}
select[id^="Name"] {visibility: hidden}
table, td{
border: 2px solid #BBC1C5;
border-collapse:collapse;
background-color:#CAD9EC
}
tr td{}
td{
padding: 5 4 5 4;
text-align:center;}
td + td,select{min-width:200px}
div{margin-top: 20}
</style>
</head>
<body>
<form action="" method="post">
<table>
<tr>
<td>№</td>
<td>Бригада</td>
<td>Базирование</td>
<td>Должность</td>
<td>ФИО</td>
<td>Рабочее время</td>
</tr>
$tr
</table>
<input type="hidden" name="Brigade" id ="Brigade" value="$Brigade">
<input type="hidden" name="Place" id = "Place" value="$Place">
<br>
<input type="button" value="Сохранить"> <div id="report"></div>
</form>
</body>
<script>
NumberOfWorkerInBrigade = '$NumberOfWorkerInBrigade';
sel = document.querySelectorAll("select[id^='Position']");
report = document.getElementById("report");
selChange = function(e){
id = e.target.id;
i=e.target.selectedIndex;
getOptions(id, i);
}
for ( iS = 0; iS<sel.length ; iS++)
{
sel[iS].addEventListener("change", selChange);
}
//------------------------------
setOpt = function(IdSelect, optObj){
select2 = document.getElementById(IdSelect);
select2.innerHTML = "";
opt = document.createElement('option');
opt.innerHTML = "Фамилия";
select2.appendChild(opt);
for(ID in optObj)
{
opt = document.createElement('option');
opt.innerHTML = optObj[ID];
opt.value = ID;
select2.appendChild(opt);
}
select2.style.visibility="visible";
};
//-----------------------------
getOptions = function(idSelect, SelectedInd){
req = new XMLHttpRequest();
req.responseType = "json";
url = "?idSelect="+idSelect+"&SelectedInd="+SelectedInd;
req.open("get", url, true);
req.responseType = "json";
req.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
try
{
rsp = this.response; //получаем JSON Object
setOpt("Name"+idSelect, rsp);
}
catch (e)
{
err={state:this.readyState,err:e.message,url:url};
console.log(err);
}
};
};
req.send();
};
sendForm = function(){
//begin form validation
arrId = ["Position", "NamePosition"];
arrMsg = ["должность ", "Ф.И.О "];
arrMsg2=["Ошибка! Вы не выбрали ", "-ого paботника" ];
msg = "";
for( n=1; n <= NumberOfWorkerInBrigade; n++)
{
for(i in arrId)
{
id = arrId[i] + n;
value = document.getElementById(id).value;
if(value==0)
{
msg += arrMsg2[0] + arrMsg[i] + n + arrMsg2[1]+"<br>";
}
}
}
if(msg)
{
report.innerHTML = msg;
return;
}
// end form validation
// ----------------------------------------
// XMLHttpRequest
data = new FormData(document.forms[0]);
req = new XMLHttpRequest();
req.responseType = "text";
url = "?save=1";
req.open("post", url, true);
req.responseType = "text";
req.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
try
{
rsp = this.response;
report.innerHTML = rsp;
}
catch (e)
{
err={state:this.readyState,err:e.message,url:url};
console.log(err);
}
};
};
req.send(data);
};
document.querySelectorAll("input[type='button']")[0].addEventListener("click", sendForm);
</script>
</html>
HTML;
?>