Это то, что страница выглядит следующим образом:Выбор вставить несколько раз в базе данных
И это то, что база данных выглядит следующим образом:
Теперь у меня было это все работают с текстовыми полями. (Когда вы нажимаете кнопку «Сохранить», текстовые поля вставляются в поле bogie_nr
.
Теперь я не хочу иметь текстовые поля, но флажки.
Итак, если я выберем первые 2 флажки и нажмите save. базы данных, чтобы вставить номер 1
в axle_nr
1 и 2.
Теперь я хочу, первые 2 коробки должны быть отключены (Таким образом, вы не можете проверить их снова).
Теперь при выборе 3-й и 4-й ящик , и нажмите «Сохранить». Я хочу, чтобы база данных ввела номер 2
на 3-й и 4-й axle_nr
.
Когда все будет заполнено, я хочу кнопку, которая перенаправляет меня на новую страницу. Как это сделать?
код (только для галочки):
<tr>
<?php
$show_axle = $database->bogies($_GET['train_id']);
foreach($show_axle as $bogiebox){ ?>
<input type='hidden' name='bogie_id[<?php echo $bogiebox['bogie_id']?>]' value='<?php echo $bogiebox['bogie_id']?>'>
<td>
<input type='checkbox' id="bogie_axle_fields" name='bogie_nr[<?php echo $bogiebox['bogie_id']?>]' placeholder = "enter bogie number">
</td>
<?php
}
?>
</tr>
Функция:
function bogies($id){
$sql = "SELECT * FROM bogie WHERE train_id = :id2";
$sth = $this->pdo->prepare($sql);
$sth->bindParam(":id2", $id, PDO::PARAM_STR);
$sth->execute();
return $sth->fetchAll();
}
EDIT:
За моей кнопкой сохранить прямо сейчас страницы: end_result.php
. Именно там у меня есть функция:
function update_bogie($id) {
$sql = "UPDATE bogie SET bogie_nr = :bogie_nr WHERE bogie_id = :bogie_id";
$sth = $this->pdo->prepare($sql);
$sth->bindParam(':bogie_id', $id, PDO::PARAM_INT);
$sth->bindParam(":bogie_nr", $_POST['bogie_nr'][$id], PDO::PARAM_STR);
$sth->execute();
}
Это обновляет таблицу Каретки (работает, когда я меняю флажки TextFields)
Что я хочу прямо сейчас: флажков. Когда я проверю первые 2 поля и нажмите «Сохранить». Я хочу, чтобы номер 1 был вставлен 2 раза для оси 1 и 2 в базе данных.
После этого я хочу, чтобы первые 2 блока были отключены. Поэтому вы не можете выбрать их еще раз.
EDIT:
Что Идентификаторы выглядеть следующим образом:
почти РАБОТАЮЩУЮ EDIT:
Ладно, так флажками Теперь вставьте в базу данных. Также они отключены, когда они вставлены в базу данных. Только несколько проблем сейчас:
- Когда я вставляю их в первый раз. Значение = 1. Но на вторая вставка также равна 1. в то время как она должна быть 2.
- Мне нужно обновить страницу, чтобы увидеть, что у вас есть поля. отключен. Я хочу, чтобы это произошло немедленно.
- Когда я вставляю новые значения. старый (отключенный) возвращается к
NULL
. Но он должен сохранять старую ценность.
Code я есть сейчас:
<form method='POST'>
<input type="hidden" value="true" id="y" name="y">
<div id="axle_bogie_border">
<div id="train_adjusted">
<h2>
Train
</h2>
</div>
<table id="distance_margin">
<div id="bogiebox">
<tr>
<?php
$x = 1;
foreach($show_axle as $bogiebox){ ?>
<input type='hidden' name='bogie_id[<?php echo $bogiebox['bogie_id']?>]' value='<?php echo $bogiebox['bogie_id']?>'>
<td>
<?php
if($bogiebox['bogie_nr'] == ''){
?>
<input type='checkbox' id="bogie_axle_fields" value="<?= $x ?>" name='bogie_nr[<?php echo $bogiebox['bogie_id']?>]' placeholder = "enter bogie number"></td>
<?php
}
else{
?>
<input type='checkbox' id="bogie_axle_fields" checked disabled value="<?= $x ?>" name='bogie_nr[<?php echo $bogiebox['bogie_id']?>]' placeholder = "enter bogie number"></td><?php } }
?>
</tr>
</div>
</table>
<input type='submit' id="add_train_button1" value='Save'>
<?php
if(isset($_POST['y'])){
$validbogies = false;
//validate
if(($_POST['bogie_id']) >0){
if($_POST['bogie_id'] >0){
$validbogies = true;
}elseif($_POST['bogie_id'] <= 0){
echo "Error!";
}
else{
echo "Error!." . "<br>";
}
}else{
echo "Error!" . "<br>";
}
//If valid, then insert.
if($validbogies){
foreach($_POST['bogie_id'] as $id) {
$update_axle = $database->update_bogie($id);
}
$x++;
unset($_POST['y']);
echo "Yea! Things have been moved to the database :)";
}
}
?>
</div>
</form>
А функция по-прежнему такой же, как и старый.
EDIT:
Вот примера:
У этих флажков всегда есть bogie_id 455-458 или он отличается? –
Они различаются. Когда я добавляю новый поезд с 8 осями. они будут 459-466 – Mitch
Вы знаете, какой поезд в настоящее время рассматривается? вы сохранили где-нибудь в php или javascript, который вы сейчас просматриваете поезда 117? –