С помощью цикла do{}while создаётся массив кнопок:
ОК
Ниже сам цикл:
<?
$news=mysqli_query($connect,"SELECT * from `news` ORDER BY `data`");
$news_res=mysqli_fetch_array($news);
do{
$title=$news_res['title_n'];
$text=$news_res['text_n'];
$id_new=$news_res[0];
echo'
<div class="container border border-info rounded qwe" style="margin-top:3%">
<div class="row justify-content-center">
<div class="col-md-auto">
<p class="text_cours" style="margin-top:9%;font-size:1.3vw; font-weight:bold;text-transform:uppercase">'.$news_res['title_n'].'</p>
</div>
</div>
<div class="row justify-content-center">
<div class="col" style="max-width:60%">
<p class="text_cours" style="margin-top:3%;font-size:1.2vw">'.$news_res['text_n'].'</p>
</div>
<div class="col" style="max-width:35%">
<img style=" max-width:100%; margin-left:2%;margin-top:3%; border: 0.3em solid rgb(0,197,183);" src="images/'.$news_res['image_n'].'"/>
</div>
</div>
<div class="row justify-content-left">
<div class="col-md-auto">
<p class="text_cours" style="margin-left:28%;font-size:1vw; font-weight:bold">'.date('d.m.Y', strtotime($news_res['data'])).'</p>
</div>
</div>
<div class="row justify-content-center" style="margin:1% auto" >
<div class="col-md-auto">
<button class="text_cours btn btn-info change_new" id="change_new" value="'.$id_new.'" style="font-size:small;">ИЗМЕНИТЬ</button>
</div>
<div class="col-md-auto">
<button class="text_cours btn btn-info" id="del_new" value="'.$id_new.'" style="font-size:small;">УДАЛИТЬ</button>
</div>
</div>
<div class="form_ch_new row justify-content-center " id="form_ch_new[]" style="display:none">
<form>
<div class="border border-info rounded" style="margin:2% 10%" id="change_new_area">
<div class="form-group row justify-content-center">
<p class="text_cours" style="font-size:1.1vw; font-weight:bold">Изменить новость</p>
</div>
<div class="form-group row justify-content-center ">
<label class="col-sm-5 col-form-label" for="new_title">Новое название:</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" value="'.$title.'" name="new_title" id="new_title"/>
<small class="form-text text-muted">Можно не менять название, просто оставьте это поле без изменений.</small>
</div>
</div>
<div class="form-group row justify-content-center ">
<label class="col-sm-5 col-form-label" for="new_text">Новый текст новости:</label>
<div class="col-sm-6">
<textarea class="form-control " name="new_text" id="new_text" rows="5"/>'.$text.'</textarea>
<small class="form-text text-muted">Можно не менять текст, просто оставьте это поле без изменений.</small>
</div>
</div>
<div class="form-group row justify-content-center ">
<label class="col-sm-5 col-form-label" for="new_image">Новое изображение:</label>
<div class="col-sm-6">
<input type="file" class="form-control-file" style="font-size:small" name="new_image" id="new_image"/>
<small class="form-text text-muted">Можно не загружать новое изображение.</small>
</div>
</div>
<div class="form-group row justify-content-center ">
<button type="submit" class="btn btn-info go_change_new" style="font-size:small" id="go_change_new" value="'.$id_new.'">ОК</button>
</div>
</div>
</form>
</div>
</div>
';
}while($news_res=mysqli_fetch_array($news));
?>
Как мне сделать так, чтобы при нажатии на кнопку, например, ту, что я выделил или любую другую кнопку "изменить"
функция jquery выполнялась именно для неё, сейчас она выполняется только для первой формы в цикле.
Вот функция:
$('input[name="new_image"]').change(function (e) {
new_image = e.target.files[0];
});
$('.go_change_new').click(function (e) {
e.preventDefault();
let new_title = $('input[name="new_title"]').val(),
new_text = $('#new_text').val(),
go_change_new = $('.go_change_new').val();
let formData = new FormData();
formData.append('new_title', new_title);
formData.append('new_text', new_text);
formData.append('go_change_new', go_change_new);
formData.append('new_image', new_image);
$.ajax({
url: '/change_new_res.php',
type: 'POST',
dataType: 'json',
processData: false,
contentType: false,
cache: false,
data: formData,
success(data) {
if (data.status) {
alert(data.message);
window.location.replace('admin.php');
} else {
alert(data.message);
}
}
});
});
Я понимаю, что тут нужно, наверное, как-то указывать через this на конкретную кнопку, но я не понимаю, как. Подскажите, пожалуйста