javascript — динамически генерируемая форма отправляет только последний идентификатор строки таблицы mysql

У меня есть динамически сгенерированная форма. Он имеет только один текстовый ввод, значение которого является идентификатором, динамически выбираемым из таблицы базы данных (table_one). Моя цель — отправить этот идентификатор в другую таблицу (table_two). На моей странице я вижу эти идентификаторы, извлеченные из table_one: 1, 2, 3, 4, 5, но когда я отправляю любой из этих идентификаторов, скажем «2», будет отправлен только последний идентификатор «5». to table_two. Как я могу изменить свой код, чтобы при отправке строки 2 идентификатор «2» был представлен не «5»? Ниже мой код.

HTML

<form>
<input type="text" id="name" name="name" value="<?php echo $name_id;?>" >
<button type="submit" onclick="return chk()">Edit</button>
</form>

JAVASCRIPT

function chk(){
var name = document.getElementById('name').value;
var dataString = 'name='+ name;
$.ajax({
type:"post",
url:"test.php",
data:dataString,
cache:false,
success: function(html){
$('#msg').html(html);
}
});
return false;
}

PHP

$name = $_POST['name'];
echo "$name";

0

Решение

Вы должны добавить уникальный идентификатор или использовать DOM. Простое решение для вашего случая:

HTML

<input type="text" id="name-<?php echo $name_id;?>">
<button type="submit" onclick="return chk(<?php echo $name_id;?>)">Edit</button>

Javascript

function chk(name_id){
$.ajax({
type:"post",
url:"test.php",
data: {
id: name_id,
name: $('#name-'+name_id).val()
},
cache:false,
success: function(html){
$('#msg').html(html);
}
});
return false;
}

И передайте идентификатор строки, которую вы хотите изменить. На сервере вы обрабатываете оба значения из $ _POST. Надеюсь это поможет.

Кстати, вам не нужен элемент формы в этом сценарии AJAX.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector