Как передать значение более одного 1 элемента в массиве из ajax в PHP? - PullRequest
0 голосов
/ 04 марта 2019

На самом деле я получаю значение кнопок с одинаковым идентификатором через цикл и массив, и я хочу передать эти значения из ajax в php, но проблема заключается в том, что отображается только значение последнего элемента?

function remove() {
            var elms = document.querySelectorAll("[id='botn']");

            for (var i = 0; i < elms.length; i++)
            var datastring=elms[i].value;
            console.log(datastring);

            $.ajax({
               url: 'php/del_beacon.php',
                type: 'post',
                data: {data:datastring},
                success: function(response) {

                }

        });
        }

Когда я использую оповещение (elms [i] .vlaue), тогда отображается значение всех выбранных кнопок. Это мой php файл

<?php
$servername="localhost";
    $username="root";
    $password="";
    $dbname="beelist";

$conn=mysqli_connect($servername,$username,$password,$dbname);
error_reporting(0);
$connDB= mysqli_select_db($conn,'beelist');
$myArray = $_POST['data'];
echo $myArray;



?>

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

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

вам нужно использовать метод push.

var data.push(elms[i].value);
0 голосов
/ 04 марта 2019

Так как вы получаете все значения выбранных данных через ajax.PHP, где у вас возникли проблемы.В своем php-коде вы не указали, что вы хотите делать с опубликованными данными, такими как вставка, обновление или удаление действий.

В любом случае на php вам нужно будет просмотреть все опубликованные данные, как показано ниже

foreach($myArray as $pid){

echo $pid;
}

В приведенном ниже коде предполагается, что вы хотите перебрать опубликованные данные, чтобы удалить записи из таблицы сообщений на основе posts_id

<?php
$servername="localhost";
    $username="root";
    $password="";
    $dbname="beelist";

$conn=mysqli_connect($servername,$username,$password,$dbname);
error_reporting(0);
$connDB= mysqli_select_db($conn,'beelist');
$myArray = $_POST['data'];


//loop through your post and then insert or delete or update records
foreach($myArray as $pid){

// Delete record
    $query = "DELETE FROM posts WHERE id=".$pid;
    mysqli_query($con,$query);


echo $pid;
}


?>

Дайте мне знать, если у вас все еще есть какие-либо проблемы ..

0 голосов
/ 04 марта 2019

Вы сохраняете только одно значение в переменной строки данных, потому что это строковая переменная.

for (var i = 0; i < elms.length; i++)
    var datastring = elms[i].value;

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

Измените его на массив и передайте ему значения через push().Тогда вы должны получить весь массив для игры в PHP:

var datastring = [];
for (var i = 0; i < elms.length; i++)
    datastring.push(elms[i].value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...