Preluare si salvare date din tabel HTML in baza de date
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
andras
- Mesaje:430
Preluare si salvare date din tabel HTML in baza de date
Salut,
Cum salvez datele dintr-un tabel html (sa zicem ca are 10 linii si 5 coloane) in baza de date folosind PHP (si js sau jQuery)?
Tabelul l-am incadrat intr-un <form> si trebuie sa parcurg fiecare linie, sa salvez toate datele din linie in variabile sau array apoi cumva sa le duc intr-un fisier.php de unde sa le preiau in variabile PHP. Daca ar fi o singura linie ar fi simplu cu <form>, dar sint mai multe linii. Se recomanda sa am <form> pentru fiecare linie din <tbody>? Am auzit ca nu.
Ma intereseaza partea din html-> javascript-> fisier.php. De acolo cunosc partea php de salvare din PHP in MYSQL.
Si inca o intrebare tot aici: daca pun ceva de genul
este recunoscuta valoarea xxx in: $_POST['celula1'] sau $_GET['celula1']?
Multumesc.
MarPlo
Mesaje:4343
Salut
Doar elemente de formular pot avea atribut "name" pentru a fi trimise la un script pe server.
Uite o functie JavaScript care returneaza un array 2-dimensional cu datele din <td> din fiecare rand.
Cu
JSON.stringify(array) se transforma array-ul intr-un sir cu format JSON.
Apoi, sirul il adaugi in GET sau POST in Ajax si-l trimiti la PHP.
In PHP se aplica
json_decode(); ca sa transformi sirul inapoi in array utilizabil in PHP.
Cod: Selectaţi tot
<script>
function getTableData(id) {
// function to get table cells data (from: https://coursesweb.net/ )
// receives table ID. Returns 2 dimensional array with TD data in each row
var t_rows = document.getElementById(id).querySelectorAll('tbody tr'); // rows from tbody
var t_data = []; // will store data from each TD of each row
var ix = 0; // index of rows in t_data
// gets and dds td data in t_data
for(var i=0; i<t_rows.length; i++) {
var row_tds = t_rows[i].querySelectorAll('td');
if(row_tds.length > 0) {
t_data[ix] = [];
for(var i2=0; i2<row_tds.length; i2++) t_data[ix].push((row_tds[i2].innerText || row_tds[i2].textContent));
ix++;
}
}
return t_data;
}
/* USAGE */
var get_table_tds = getTableData('t_id'); // get the array with table data
var json_sr_tds = JSON.stringify(get_table_tds); // JSON string with table data
// console.log(json_sr_tds); // for debug
// result: [["156","2668","100.95","1.82"],["256","618","10.35","1.82"],["789","28","105.8","15.89"]]
</script>
Tabel de test:
Cod: Selectaţi tot
<table id="t_id">
<tbody>
<tr>
<th>col_1</th>
<th>col_2</th>
<th>col_3</th>
<th>col_4</th>
</tr>
<tr>
<td>156</td>
<td>2668</td>
<td>100.95</td>
<td>1.82</td>
</tr>
<tr>
<td>256</td>
<td>618</td>
<td>10.35</td>
<td>1.82</td>
</tr>
<tr>
<td>789</td>
<td>28</td>
<td>105.8</td>
<td>15.89</td>
</tr>
</tbody></table>
andras
Mesaje:430
MarPlo, o sa studiez pe indelete.
Dar ceva de genul :
Cod: Selectaţi tot
<form method="post" action="fisier.php">
<table><thead><th>coloana</th></thead><tbody><tr>
<td name="celula1"> xxx </td>
</tr></tbody>
</table>
</form>
pot folosi pentru preluarea xxx in $_POST['celula1']?
MarPlo
Mesaje:4343
Nu
Probabil aflai mai repede daca incercai.
Doar elementele speciale de formular pot avea atribut "name" pentru a fi trimise la un script pe server (input, select, textarea).
Dar ca idee, ai putea sa adaugi in celula un <input> ascuns.
Cod: Selectaţi tot
<form method="post" action="fisier.php">
<table><thead><th>coloana</th></thead><tbody><tr>
<td>valoare <input type="hidden" name="celula1" value="valoare" /></td>
</tr></tbody>
</table>
</form>
andras
Mesaje:430
Am incercat cu "hidden" dar n-am reusit pentru ca nu stiu sa pun din jQuery in hidden. Nu-i nimic, mai sap, poate reusesc.
Edit:
- Am rezolvat-o pana la urma, Preiau datele celulei in functia Ajax. In stop: se pune
Si apoi variabila "g" se preia in ajax().
Salut!
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...
- Valoarea id-ului din HTML atribuită unei variabile php
PHP - MySQL - XML
Primul mesaj
Încerc să extrag valorile id= min5 , id= max5 si să le pun în $_GET $_GET fara trimitere în altă pagină
cum aș putea proceda?
<div class=...
Ultimul mesaj
Nu prea inteleg ce vrei sa faci.
Codul php se executa pe server inainte de a fi pagina cu codul html si javascript.
In php, valorile pentru...