Подсчет строк, которые нужно добавить и вставить в таблицу - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть скрипт, который позволяет создавать несколько строк на странице, а затем мне нужно подсчитать строки в сообщении, а затем каждую строку вставить в таблицу.

У меня работает графический интерфейсгде пользователи могут добавлять или удалять строки по мере необходимости, пока я не отправляю данные не записываются в таблицу.Я попытался изменить сценарий для поста, чтобы он был прямым '$ variable', и он работает для записи, но записывает только первую строку.

Я приложил сценарий действия, который я использую, из WebLesson, который прекрасно работает дляодно поле, но для более чем одного я в растерянности, что попробовать.

//includes
include '----';
include '---'; 
session_start();

$number = count($_POST['name']);

echo $_POST['name'] . "<br>";
echo $number . "<br>";
 if($number >= 1)
{
 echo $_POST['pasid'];

$conn = mysqli_connect($servername, $username, $password, $dbname);

$id = $_POST['pasid'];
$name = $_POST['name'];
$dose = $_POST['dose'];
$dir = $_POST['directions'];
$time = $_POST['time'];

echo $i;
for($i=0; $i<$number; $i++)
    {
    if(trim($_POST["name"][$i] != ''))
    {

        $sql = "INSERT INTO meds (id, name, dose, directions) 
VALUES('".mysqli_real_escape_string($_POST["pasid"][$i])."', 
'".mysqli_real_escape_string($_POST["name"][$i])."', 
'".mysqli_real_escape_string($_POST["dose"][$i])."', 
'".mysqli_real_escape_string($_POST["directions"][$i])."', 
'".mysqli_real_escape_string($_POST["time"][$i])."') " ;
        mysqli_query($conn, $sql);
    }
}
echo "Data Inserted";
}
else
{
 die("Connection failed: " . mysqli_connect_error());
}

Мне бы хотелось, чтобы подсчитать, сколько строк было опубликовано, а затем отправить каждую строку в таблицу.

Изображение пользовательского интерфейса:

enter image description here

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете сгенерировать уникальные атрибуты name для каждого элемента формы, а затем просмотреть их в PHP.Самым простым способом сделать это, вероятно, будет увеличение числа в конце атрибута name каждый раз, когда пользователь создает новую строку.Вам придется сделать это с помощью Javascript.

var suffix = 0;
function addNewRow(){
    ...
    <input type="text" name="pasid_${i}"/>   //Add incriminating suffix
    ...
    suffix++;     //Increment suffix for next time
}

Тогда ваш PHP будет выглядеть как

$suffix = 0;
while(isset($_POST['pasid' . $suffix])){   //Keep looping until no more POST value

    //Process row $suffix, referencing all the data like $_POST['field_name'. $suffix]

    $suffix++;                            //Increment suffix for the next field
}

Убедитесь, что поле, которое вы проверяете в цикле while, является обязательным, иначепользователь может пропустить ввод, и цикл завершится преждевременно.Вы также можете проверить несколько $_POST индексов в цикле while, если не требуются поля.

...