repartizare valori returnate in aceeasi functie ajax
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
sterica
- Mesaje: 285
repartizare valori returnate in aceeasi functie ajax
Salutare,
Am urmatorul cod HTML:
Cod: Selectaţi tot
<html>
<head>
<script> includ graficul Highcharts</script>
</head>
<body>
<form action="" method="post">
<select id="an" name="an" onchange="fetch_select();">
<option value="" disabled>--> Alege anul <--</option>
<?php
$today = date('Y');
for ($i=2014; $i <= $today; $i++) {
if ($today==$i ){
$selected = "selected='selected'";
}else {
$selected = "";
}
echo "<option value='$i' $selected>$i</option>";
}
?>
</select>
</form>
<div id="id1"><table></table></div>
<div id="id2">Grafic Highcharts</div>
</body>
</html>
<script>
window.onload = fetch_select();
function fetch_select(){
var sel_an = $('#an).val();
$.ajax({
type: 'POST',
url: 'index.php',
data: {get_an: sel_an},
success: function(result){
$("#id1").html(result); // aici este rezultatul din prima functie
// cum pot aduce rezultatul din a doua functie si sa il trimit in variabila data_v din functia columnChart
}
});
}
// scriptul pentru chart
function columnChart(data_v) {
if(data_v.length >0){
Highcharts.chart('id2', {
chart: {
type: 'column'
},
title: {
text: 'Stacked column chart'
},
xAxis: {
categories: data_v
},
yAxis: {
min: 0,
.....
</script>
Valorile din form sunt prelucrate in doua functii php (in viitor am de gand sa folosesc mai multe functii) si sunt trimise cu ajax.
Prima functie are ca rezultat return '<td>......</td>', iar rezultatul este destinat div-ului 1.
A doua functie are ca rezultat return un: json_encode($arr), iar rezultatul acestei functii este destinat unei variabile dintr-o functie js data_v.
Cum pot repartiza valorile returnate de functii cu ajutorul lui ajax destinate fiecarui div/functie js?
Multumesc!
MarPlo
Mesaje: 4343
Salut
In ajax verifici rezultatul de la php, si in functie de ceea ce stii ca vrei sa contina faci repartizarea.
Cam asa:
Cod: Selectaţi tot
success: function(result){
//if result is string with <td>, else, if is object
if((typeof result === 'string') && result.match(/\<td\>/i)) $("#id1").html(result);
else if(typeof result === 'object') data_v = result;
}
sterica
Mesaje: 285
Ajax primeste valorile prelucrate de la un if:
Cod: Selectaţi tot
if(isset($_POST['get_an'])){
$an = $_POST['get_an'];
echo functia1 ($an, $conn);
echo functia2 ($an, $conn);
exit;
}
Acest if imi returneaza un string:
<td>.......</td>rezultatul din functia2
Iar in ajax nu se mai ajunge la else if.
Cum pot separa cele doua raspunsuri de la functii in string si object?
Multumesc!
MarPlo
Mesaje: 4343
Daca vrei sa transmiti la ajax si string-ul si array-ul in acelasi raspuns, ar merge daca trimiti din php un singur sir json cu sirul <td> si array-ul pt data_v.
La ajax sa primesti:
Cam asa in php:
Cod: Selectaţi tot
$resp =[
'str'=>'<td>...</td>',
'ob'=>$array
];
echo json_encode($resp);
Iar in ajax:
Cod: Selectaţi tot
if((result.str) $("#id1").html(result.str);
if(result.ob) data_v = result.ob;
sterica
Mesaje: 285
multumesc mult de ajutor, incerc sa adaptez aceasta varianta
Subiecte similare
-
Id distinct cu insumare valori din array
PHP - MySQL - XML
Primul mesaj
Salutare,
Am un array de obiecte de forma:
$arr =
Cum pot face un array de obiecte cu id-uri distincte dar cu suma pentru cantitate si...
Ultimul mesaj
multumesc foarte mult de ajutor
-
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:...
-
Post cu Ajax in modal
JavaScript - jQuery - Ajax
Primul mesaj
Bună ziua,
Vreau să trimit în aceeași pagină dar în modal două id-uri. Prin alert(id) îmi arată conținutul postului trimis dar în modal nu imi...
Ultimul mesaj
Nu prea inteleg mecanismul si ce anume nu functioneaza.
Oricum, daca functioneaza cand pui manual id-ul, poate ca problema e de la php.
Trebuie sa...
-
Ordine de executie cu jQuery-AJAX
JavaScript - jQuery - Ajax
Primul mesaj
Am acest cod (ajax este asincron):
function echoHello(){
return $.ajax({
//this will return hello ;
});
}
function echoWorld(){
return world...
Ultimul mesaj
Ajax face un apel către serverul web și este asincron. Nu știi cât va dura pana la raspuns. Este la fel ca:
setTimeout(_ => {...
-
Ajax fade mesaj si redirect dupa un timp
JavaScript - jQuery - Ajax
Primul mesaj
Am codul asta si vreau in loc de input type=button sa fie submit, dar sa imi dea fade la fel in 5 secunde de cand apare eroarea.
Daca schimb cu...
Ultimul mesaj
Am rezolvat,multumesc frumos de ajutor