submit cu ajax onchange select
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
sterica
- Mesaje:285
submit cu ajax onchange select
Salutare,
Am un form care trimite valori dintr-un select intr-un query, insa vreau ca aceste valori sa fie trimise la schimbarea valorilor din select fara a mai fi nevoie de submit, insa ma impotmolesc la JS, nu stiu cum sa fac trimitea rezultatului in tabel.
Cod: Selectaţi tot
<?php
$an_selectie = null;
if(isset($_POST['an_selectie])) {
$an_solicitari = $_POST['an_selectie'];
}
function an_selectie ($var){
$sql = "Select*From tbl...WHERE .... $an_selectie"
...
echo "<td>.$row['ID']</td>";
}
?>
<form action="" method="post">
<select id="an_selectie" onchange="fetch_select();">
<option value="2016">2016</option>
<option value="2017">2017</option>
</select>
</form>
<div>
<table>
<tr><?php an_selectie($var); ?></tr>
</table>
</div>
<script>
function fetch_select(){
var an_selectie = $('#an_selectie').val();
$.ajax({
type: 'POST',
url: 'index.php',
data: { an_selectie: an_selectie},
});
}
</script>
Multumesc!
MarPlo
Mesaje:4343
Salut
Care e problema, ce nu functioneaza?
Preia valoarea din select, trimite datele la php?
sterica
Mesaje:285
functia js preia valoarea din select insa nu reusesc sa o duc in functia an_selectie din php si sa afisez rezultatul functie in tabel
MarPlo
Mesaje:4343
Afisarea se face din JavaScript. In Ajax preiei raspunsul de la server si-l adugi in html.
Cod: Selectaţi tot
<div id='resp'>Aici ajax adauga raspunsul de la server</div>
<script>
function fetch_select(){
var an_selectie = $('#an_selectie').val();
$.ajax({
type: 'POST',
url: 'index.php',
data: { an_selectie: an_selectie},
success: function(raspuns){
$('#resp').html(raspuns);
}
});
}
</script>
In php returnezi direct raspunsul, fara altceva.
Cod: Selectaţi tot
function an_selectie($var){
$sql = "Select*From tbl...WHERE .... $an_selectie"
//...
return '<td>'.$row['ID'].'</td>';
}
if(isset($_POST['an_selectie'])){
$an_solicitari = $_POST['an_selectie'];
echo an_selectie($an_solicitari);
exit;
}
sterica
Mesaje:285
mi-a reusit, multumesc mult de ajutor
sterica
Mesaje:285
desi functioneaza corect logica codului prezentata mai sus, am o nelamurire.
Codul meu ara asa:
Cod: Selectaţi tot
<?php
function an_selectie($var){
$sql = "Select*From tbl...WHERE .... $an_selectie"
//...
return '<td>'.$row['ID'].'</td>';
}
if(isset($_POST['an_selectie'])){
$an_solicitari = $_POST['an_selectie'];
echo an_selectie($an_solicitari);
exit;
}
?>
<?php
include_once "includes/head.inc.php";
?>
<div id='resp'>Aici ajax adauga raspunsul de la server</div>
<script>
function fetch_select(){
var an_selectie = $('#an_selectie').val();
$.ajax({
type: 'POST',
url: 'index.php',
data: { an_selectie: an_selectie},
success: function(raspuns){
$('#resp').html(raspuns);
}
});
}
</script>
<?php
include_once "includes/footer.inc.php";
?>
Raspunsul primit din if il afiseaza in interiorul div-ului cu id resp.
De ce aceasta linie de cod:
echo an_selectie($an_solicitari); nu este afisata la inceputul paginii (inaintea head-ului) si codul de ce nu se opreste la exit-ul din if?
Multumesc!
MarPlo
Mesaje:4343
Codul:
Cod: Selectaţi tot
if(isset($_POST['an_selectie'])){
$an_solicitari = $_POST['an_selectie'];
echo an_selectie($an_solicitari);
exit;
}
- se executa DOAR cand sunt trimise date prin POST cu parametru 'an_selectie' (asta e rolul acelui if() ); in cazul tau cand e acel apel de la Ajax. Doar atunci e transmis acel "
echo" si primit "
pe ascunns" in javascript, iar
exit; ca sa nu mai trimita si altceva ca raspuns la ajax.
Subiecte similare
- Setare valori din array in select tag
JavaScript - jQuery - Ajax
Primul mesaj
Salut am un array cu orele de functionare
$data = array (
'0400' => '04:00 AM',
'0430' => '04:30 AM',
'0500' => '05:00 AM',
'0530'...
Ultimul mesaj
Testeaza urmatorul cod.
Daca ceva mai trebuie schimbat, incearca si tu sa modifici dupa cum stii, in functie de ce vrei sa obtii.
Open:...