Adaugare butoane la listare din mysql
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
giulian9
- Mesaje:44
Adaugare butoane la listare din mysql
Salutare , acest site m-a ajutat mult pana acum.
Sunt blocat intr-o listare mysql care e putin mai complicata pentru cunostintele mele.
Listez baza de date in html folosind:
Problema de care m-am lovit e faptul ca fiecare inregistare trebuie sa aiba 5 butoane ( Confirmare , Respingere , Stergere, Detalii ) . Mai exact baza de date contine datele clientilor ce vor sa se inregistreze , iar dupa listare trebuie sa fiecarui buton sa ii fie atribuita o functie . spre ex. Confirmare -> Se genereaza nr de inregistrare , Clientul primeste email cu nr generat intr-un fisier pdf s.a.m.d..
Ideea ca listarea e cu "bucla" while si orice schimb in prima coloana se modifica si la ceilalti. Are cineva idee cum as putea sa fac listarea / eventual schimba ceva la butoane ca sa pot modifica fiecare inregistrare (individual).
Stima
MarPlo
Mesaje:4343
Salut
Daca ai pune codul php pe care ai incercat sa-l faci, si ce cod html ai vrea sa rezulte, pate are cineva o idee sau solutie ajutatoare.
giulian9
Mesaje:44
Cod: Selectaţi tot
result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo '<table align="center" border=3 width="50%" height="100">';
echo '<tr><th>Firma</th><th>Data</th><th>Nr.Inreg</th><th>Articol</th></tr>';
echo '<tr><td>'. $row['Firma']. '</td><td> '. $row['Data']. '</td> <td> '. $row['Nr.Inreg']. '</td><td colspan="5"> '. $row['Articol']. '</td>
<td style="background-color:#f3f3f3" colspan="4" valign="middle" align="center"><input type ="button" value = "Confirmare" name="Confirmare"></button><input type ="button" value = "Refuz" name="Refuz"></button><input type ="button" value = "Stergere" name="Stergere"></button><input type ="button" value = "Mentiune" name="Mentiune"></button><input type ="button" value = "Detalii" name="Detalii"></button></tr> ';
}
}
else {
echo 'Fara Informatii ! !';
}
echo '</table>';
Eu incerc sa fac ceva de genul in javascript:
Cod: Selectaţi tot
function OnConfirmare() {
document.Form1.action = "<?php include('database.php');
// generare nr inreg
// mail catre client
?>"
// document.Form1.target = "_blank"; // Open in a new window
document.Form1.submit(); // Submit the page
return true;
}
.., ca sa pot atribui o functie butonului , insa fiind intr-o bucla ...nu am idee / cunostinte
MarPlo
Mesaje:4343
Poti sa faci asa:
1. Adaugi butoanele intr-un <div> cu "class" si "id"-ul randului din mysql pentru folosire in javascript:
Cod: Selectaţi tot
<td style="background-color:#f3f3f3" colspan="4" valign="middle" align="center"><div class="frm_btns" id="frm_'. $row['id'] .'">
<input type ="button" value = "Confirmare" name="Confirmare"></button><input type ="button" value = "Refuz" name="Refuz"></button><input type ="button" value = "Stergere" name="Stergere"></button><input type ="button" value = "Mentiune" name="Mentiune"></button><input type ="button" value = "Detalii" name="Detalii"></button>
</div></td>
2. In codul html, dupa tabelul cu listarea, adaugi un <form> cu campuri "hidden" pt. id si actiunea butonului apasat, si scriptul JS din acest cod, care inregistreaza "click" la butoanele din acel <div> sa trimita datele la "scriptul.php".
Cod: Selectaţi tot
<table align="center" border="3" width="50%" height="100">
...
</table>
<form action="scriptul.php" method="post" target="_blank" id="frm_send">
<input type="hidden" name="mode" value="">
<input type="hidden" name="id" value="">
</form>
<script>
//get the clicked button, add mode and id data in form #frm_send, send the form
function sendFrm(btn){
frm_send.mode.value= btn.value;
frm_send.id.value= btn.parentNode.id.replace('frm_', '');
frm_send.submit();
}
var frm_send = document.getElementById('frm_send'); //form to add and send data
//register click to buttons in .frm_btns, to call the sendFrm()
var all_btns = document.querySelectorAll('.frm_btns input');
for(var i=0;i<all_btns.length;i++) all_btns[i].addEventListener('click', function(ev){ sendFrm(ev.target);});
</script>
3. In acel fisier php preiei si folosesti cum stii datele trimise:
Cod: Selectaţi tot
if(isset($_POST['mode']) && isset($_POST['id'])){
$mode = strip_tags($_POST['mode']);
$id = (int) $_POST['id'];
//etc..
}
giulian9
Mesaje:44
Multumesc Marplo . Ruleaza ok ,pot identifica ce buton a fost ales, insa ma lovesc de aceeasi dilema care o aveam la inceput , cum identific pe ce linie sunt(daca sunt la clientul 1 sau 2 ,3 etc) , id = 0 indiferent ce buton aleg .
MarPlo
Mesaje:4343
ID-ul ar trebui sa fie in aceasta bucata de cod (poti sa verifici in sursa html a paginii cum e rezultat):
Cod: Selectaţi tot
<div class="frm_btns" id="frm_'. $row['id'] .'">
- unde $row['id'] e id-ul randului respectiv din baza de date. Ca sa functioneze, trebuie si el selectat in instructiunea sql care face Select-ul, impreuna cu celelalte coloane, dupa cum ai denumirea coloanei pentru id-ul randului din tabelul mysql.
giulian9
Mesaje:44
giulian9 scrie:Multumesc Marplo . Ruleaza ok ,pot identifica ce buton a fost ales, insa ma lovesc de aceeasi dilema care o aveam la inceput , cum identific pe ce linie sunt(daca sunt la clientul 1 sau 2 ,3 etc) , id = 0 indiferent ce buton aleg .
Edit: Am adaugat Id la interogarea sql ( se pare ca uitasem ) si functioneaza. Ramane sa merg mai departe cu filtre / sortare pentru fiecare buton in parte .
Subiecte similare
- Adaugare orar zilele saptamanii in baza de date
PHP - MySQL - XML
Primul mesaj
Salut
Am o baza de date cu toate locatiile
location_id | name |address |telephone | open
Si un formular prin care incarc datele in bd....
Ultimul mesaj
Treaba cu adaugare json in mysql e simpla, se rezuma la adaugarea unui sir care contine ghilimele duble.
Problema la tine e ca acele ghilimele sunt...