У меня есть динамически сгенерированная форма. Он имеет только один текстовый ввод, значение которого является идентификатором, динамически выбираемым из таблицы базы данных (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";
Вы должны добавить уникальный идентификатор или использовать 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.
Других решений пока нет …