我有一个问题,多个按钮具有相同的ID。当我单击其中一个按钮时,它仅适用于id = 1(当我在文本字段中输入内容并按任意按钮时,在每种情况下,只会更新id = 1的记录)。如何解决这个问题?
div id="ShowPrace">
<?php
try {
$stmt = $pdo->prepare("SELECT * FROM prace");
$stmt->execute(array());
$count = $stmt->rowCount();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
?>
<textarea class="form-control" name="id" rows="1" id="id"><?php echo $ind; ?></textarea>
<div class="form-group">
<label for="img">Link do obrazka:</label>
<textarea class="form-control" name="link" rows="1" id="link"><?php echo $row['img']; ?></textarea>
</div>
<div class="form-group">
<label for="title">Tytuł:</label>
<textarea class="form-control" name="title" rows="1" id="title"><?php echo $row['title']; ?></textarea>
</div>
<div class="form-group">
<label for="opis">Opis:</label>
<textarea class="form-control" name="opis" rows="1" id="opis"><?php echo $row['opis']; ?></textarea>
</div>
<div class="form-group">
<button type="submit" id="poprawa" name="poprawa" class="btn btn-primary"> Popraw</button>
</div>
<?php
}
} catch (\Exception $e) {
echo "Wystąpił nieoczekiwany błąd!";
}
?>
和JS:
("#poprawa").click(function(){
var link = $("#link").val().trim();
var title = $("#title").val().trim();
var opis = $("#opis").val().trim();
var id = $("#id").val().trim();
$.ajax({
url: 'update_prace.php',
type: 'POST',
data: {link:link, title:title, opis:opis, id:id},
success: function(response){
if(response == 0){
alert("error");
}
else{
alert("Poprawione!");
location.reload();
}
}
});
});
答案 0 :(得分:2)
ID是唯一的,无法重复。您应该在DOM中使用class
并相应地更改选择器
HTML:
<button type="submit" name="poprawa" class="btn btn-primary poprawa"> Popraw</button>
JS:
$(".poprawa").click(function(){
例如。
答案 1 :(得分:2)
您必须区分ID,因为ID是唯一的。
您可以执行以下操作:
<?php
...
$i=0;
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
?>
...
<textarea class="form-control" name="id" rows="1" id="id-"<?php $i ?>>
...
<?php
}
$i++;
} catch (\Exception $e) {
echo "Wystąpił nieoczekiwany błąd!";
}
?>
$i
允许更改每个循环的ID。