JQuery передать два массива и вставить в разные поля в одной таблице

0

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

var arr = [];
var arr1 = [];

$('.cat').each(function() {         
   arr.push($(this).text());
});

$('.cat_value').each(function() {         
   arr1.push($(this).val());
});

$.ajax({
    url:'rs_insert.php',
    data:{categories: arr, cat_values:arr1},
    type:'POST',
    success:function() {
        alert("data has been sent");
		document.getElementById('exampleModal1').style.display = "none"; 
    }      
}); 

файл php

$con=mysqli_connect("localhost","root","","test");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$values = array();
foreach($_POST['categories'] as $key => $name) { 
  $values[] = $name;
}

$sql1 = "INSERT INTO rs (Category) VALUES ";
foreach($values as $cat) {
  $sql1 .= "('" . $cat . "'),";
}

$sql1_trimmed = rtrim($sql1,',');

////

$values1 = array();
foreach($_POST['cat_values'] as $key => $value) { 
  $values1[] = $value;
}

$sql2 = "INSERT INTO rs (Value) VALUES ";
foreach($values1 as $val) {
  $sql2 .= "('" . $val . "'),";
}

$sql2_trimmed = rtrim($sql2,',');
if (!mysqli_query($con,$sql1_trimmed)) {
  die('Error: ' . mysqli_error($con));
}
 if (!mysqli_query($con,$sql2_trimmed)) {
   die('Error: ' . mysqli_error($con));
 }

проблема в том, что он не вставил значения parrallel. сначала он вставляет значения в поле категории с полем 0 по значению. заполненное поле значения с пустыми категориями. Изображение 174551

  • 1
    Я бы предложил подготовить / связывание.
  • 1
    @Sarah_Salar перед вставкой в базу данных. объедините оба массива {array_merge ($ a1, $ a2)}, тогда у вас будет один массив. ключ будет cat, а значение будет cat_value. Если вы все еще не можете понять, я напишу ответ.
Показать ещё 2 комментария
Теги:

1 ответ

2
Лучший ответ

вы можете попробовать следующее:

$con=mysqli_connect("localhost","root","","test");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$values = array();
foreach($_POST['categories'] as $key => $name) { 
  $values[] = $name;
}

////

$values1 = array();
foreach($_POST['cat_values'] as $key => $value) { 
  $values1[] = $value;
}

$sql1 = "INSERT INTO rs (Category,Value) VALUES ";
for($i=0;$i<count($values);$i++) {
  $sql1 .= "('" . $values[$i] . "','". $values1[$i] ."'),";
}

$sql1_trimmed = rtrim($sql1,',');

if (!mysqli_query($con,$sql1_trimmed)) {
  die('Error: ' . mysqli_error($con));
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню