Я очень плохо знаком с PHP и JavaScript, и я застрял. Я потратил целых 7 часов, пытаясь понять это, но я просто не знаю, что и как это сделать. Поэтому в моем приложении, когда вы пытаетесь добавить новую строку в мою таблицу, у меня есть форма html для получения данных. Когда вы вводите данные в форму и нажимаете кнопку «Отправить», она запрашивает пароль, и, если введен правильный пароль, она отправляет форму. Это работает так, как я хотел, вот что у меня есть:
<button onclick="password()" type="button">Create New Hero</button>
<div>
<a id="discl">*-Required Fields</a>
</div>
<script>
function password(){
var password = prompt("Please Enter the Admin Password");
if(password != "shaun"){
alert("Wrong Password");
}
else{
if(validation()){
document.getElementById("form_id").submit();
}
else{
alert("One or more required fields were left empty, or tried to use <script>");
}
}
}
function validation(){
var f = document.getElementById("f_name").value;
var l = document.getElementById("l_name").value;
var d = document.getElementById("dob").value;
var a = document.getElementById("alias").value;
if(f == "" || l == "" || d == "" || f.includes("<script>") || l.includes("<script>") || a.includes("<script>")){
return false;
}
else{
return true;
}
}
</script>
Теперь у меня также есть редактирование и удаление в моей таблице. Моя проблема в том, что при редактировании и удалении они находятся в тегах с href и не являются кнопками. Вот как они изначально выглядели, когда работали без запроса пароля:
echo "<a href='./edit.php?id={$row['id']}'>edit</a>";
Таким образом, в зависимости от того, какая строка таблицы была, где вы нажимали, редактировать или удалять, основываясь на идентификаторе строки из базы данных. , он будет редактировать или удалять эту таблицу. Теперь моя проблема в том, что я не знаю, как правильно настроить функцию, чтобы она запрашивала пароль и перенаправляла на правильный URL. Это то, что у меня есть сейчас:
foreach($results as $row){
echo "<tr>";
echo "<td>{$row['first_name']}</td>";
echo "<td>{$row['last_name']}</td>";
echo "<td>{$row['date_of_birth']}</td>";
echo "<td>{$row['alias']}</td>";
echo "<td>{$row['active']}</td>";
echo "<td>{$row['hero']}</td>";
echo "<td>";
echo "<a href='./edit.php?id={$row['id']}'>edit</a>";
echo " | ";
echo "<a href='javascript: password()'>delete</a>";
echo "</td>";
echo "</tr>";
}
?>
<script type="text/javascript">
function password(){
var password = prompt("Please Enter the Admin Password");
if(password != "shaun"){
alert("Wrong Password");
}
else{
window.location.replace("./delete.php?id=<?php echo $row['id']; ?>");
}
}
</script>
Проблема в том, что независимо от того, какое удаление я нажимаю на своей таблице, оно всегда удаляет последнее, потому что идентификатор, который он получает после URL это последний доступный идентификатор из моей базы данных. Я не уверен, что мне просто не хватает чего-то маленького или я совершенно не на том пути, но любая помощь будет признательна, потому что я очень потерян. Спасибо