Somma variabili impossibile

Gigi La Trottola

Nuovo Utente
6 Feb 2016
3
0
0
Buongiorno a tutti,spero innanzitutto di non aver sbagliato thread per esporvi il mio problema.
Vorrei una vostra consulenza/aiuto riguardo un usercript che ho elaborato.
Premessa:sono un autodidatta,aimè senza solide basi nei linguaggi di programmazione (da qui i possibili e svariati errori),ma con tanta voglia di imparare e mettermi alla prova.
Cerco di sintetizzare il mio problema.
Prendendo spunto da vari script utente contenuti in librerie e studiando le diverse opzioni apllicabili ad essi ,ho ottenuto uno script sfruttando Jquery e Ajax che preleva un valore (stesso id) da più pagine riportandolo nella colonna di una tabella situata in un'altra pagina dello stesso sito.
Riporto lo script ottenuto e funzionante


Codice:
unsafeWindow.jQuery(document).ajaxComplete(function(event, xhr, settings)
{   
    rebindClicks();
    
    if (settings.url === "/ajax/transfer.ajax.php")
    {
        calcoloVal();
    }
});

function rebindClicks()
{
    $.each($('#pages').find('span'), function(index, span) 
    {
        var clickAntigo = $(span).attr('onclick');
		$(span).removeAttr('onclick');
        $(span).off('click');
        $(span).on('click', function()
                   {
                       eval(clickAntigo);
                       calcoloVal()();			          
                       rebindClicks();
                   });
	});
}



function calcoloVal()
{
	$("tr.header").append("<th class='valore' title='' style='width: 60px; cursor: pointer;''>New Val</th>");

	var indix = "";
	$("div.player_name > a").each
	(function(e, player) 
	{
		indix = "player_id="+ $(player).attr("player_link");
		
		var xhr = new XMLHttpRequest(); 
		xhr.open("POST", "http://trophymanager.com/ajax/tooltip.ajax.php", true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr.onreadystatechange = function()
		{ 
			if (xhr.readyState == 4)
			{
				var risult = JSON.parse(xhr.responseText );

$("a[player_link=" + risult.player.player_id + "]").closest("tr").append("<td class='right align_right valore' style='padding-right:5px;color: gold;'><span>" + risult.player.age + "</span></td>");
			}
		}
		xhr.send(indix);
	}
	);	
}

Fin qui tutto ok.
Ho cercato di implementarla aggiungendo una semplice somma nella parte finale della funzione calcoloVal() trasformandola come segue:

function calcoloVal()
{
	$("tr.header").append("<th class='valore' title='' style='width: 60px; cursor: pointer;''>New Val</th>");

	var indix = "";
	$("div.player_name > a").each
	(function(e, player) 
	{
		indix = "player_id="+ $(player).attr("player_link");
		
		var xhr = new XMLHttpRequest(); 
		xhr.open("POST", "http://trophymanager.com/ajax/tooltip.ajax.php", true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr.onreadystatechange = function()
		{ 
			if (xhr.readyState == 4)
			{
				var risult = JSON.parse(xhr.responseText );
				
				var playerAge = risult.player.age;
                var playerRoutine = 5;
				var somma = function(a,b){
     return (a + b);
}(playerRoutine,playerAge);		
				
				
				$("a[player_link=" + risult.player.player_id + "]").closest("tr").append("<td class='right align_right valore' style='padding-right:5px;color: gold;'><span>" + somma + "</span></td>");
			}
		}
		xhr.send(indix);
	}
	);	
}

Ma nulla:il valore restituito non è la somma delle 2 variabili,ma il susseguirsi dei 2 valori.
La cosa cambia se pongo "var playerAge = n" ovvero un numero naturale intero come succede all'altra variabile "playerRoutine" (=5).
Da quanto deduco,ma potrei benissimo sbagliarmi,la somma delle 2 variabili non avviene perchè "var playerAge = risult.player.age"
mi restituisce nella tabella si un valore numerico,ma che in realtà è solomente una stringa non "operabile".Giusto?
Sto provando a cambiare .attr() con .val() riuscendo solo a fare confusione.
C'è qualcuno in grado di aiutarmi sempre se quanto chiedo sia fattibile?
Vi ringrazio in anticipo sperando di non esser stato dispersivo nell'esposizione del problema
Luigi
 
Ultima modifica di un moderatore:

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
si, come hai scritto, stai concatenando due stringhe,
la somma la puoi fare
PHP:
var playerAge = risult.player.age;
var playerRoutine = 5;

var somma = +playerRoutine + +playerAge;

var somma = Number(playerRoutine) + Number(playerAge);

var somma = parseInt(playerRoutine, 10) + parseInt(playerAge, 10);

nel caso di numeri con virgola puoi usare "parseFloat()"
ciao
 

Gigi La Trottola

Nuovo Utente
6 Feb 2016
3
0
0
Grazie 1000 marino!
Sia per la celerità della risposta sia per la risposta in se :D e scusami per il ritardo nella risposta
Solo che... :( credevo di aver risolto la parte successiva,ma mi sbagliavo :(
Per farla breve alla "var somma" devo ulteriormente aggiungere un valore (da prelevare nella tabella dove ho inserito il valore ottenuto "New Val")
Le ho provate un pò tutte,principalmente però ho insisto con .each() e .attr() :sicuramente date le mie "solide basi" -.- sbaglierò a nell'indicare i parametri -.-
Ecco evidenziato il valore in questione da prelevare

HTML:
<div id="transfer_list">     //id tabella
	<table class="hover" cellspacing="0" cellpadding="0">
		<tbody>
		<tr class="header">   //identificazione colonne
			<th title="" style="width: 30px; cursor: pointer;"></th>
			<th class="left" title="" style="width: 200px; cursor: pointer;">Nome</th>
			<th title="" style="width: 30px; cursor: pointer;">Età</th>
			<th title="Posizione favorita" style="width: 56px; cursor: pointer;">PF</th>
			<th title="Raccomandazione" style="width: 100px; cursor: pointer;">Racc</th>
			
			          // Inizio Intestazione var da prelevare
			<th class="align_center" title="Indice Skill (ASI)" style="width: 82px; cursor: pointer;">ASI</th>
			          // 
			          // 
			<th title="" style="width: 82px; cursor: pointer;">Scadenza</th>
			</tr>
		<tr id="player_row_58901175">      //prima riga tabella
				<td class="align_center">...</td>
				<td class="left" nowrap="">
						<div class="player_name">
							<a href="/players/58901175/António/" player_link="58901175">António</a> 
							</div>
						    </td>
				<td class="align_center">...</td>
				<td class="align_center">...</td>
				<td class="align_center">...</td>
				      // Valore della riga da prendere come var
				<td class="align_center align_right">
							<span sort="80153">80,153</span>
							</td>
					//
					//		
				<td id="time_58901175" class="time-left-td align_center">...</td>
				</tr>
				// 2° 3° riga e così via
		<tr id="player_row_60841378">...</tr>   
		<tr id="player_row_57835321">...</tr>	
			    </tbody>
		      </table>
		    </div>

Riusciresti(/ste) a darmi l'ennesima mano anke per questo?
Grazie sempre e cmq
Luigi
 
Ultima modifica di un moderatore:

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
ci sono vari modi per passare il valore (i valori) a javascript,

in particolare se html (i valori) fosse generato con il supporto di php,
si potrebbe passare un' array che contiene il valore di "Antonio" e di tutte righe successive, semplificando molto,

altrimenti javascript deve recuperare i valori dalle "variabili" contenute in html,
"variabili" che devono essere identificate da un "nome" e/o "id"
HTML:
<td class="align_center align_right">
 <span sort="80153" id="valore1" name="valore1">80,153</span>
c'è però quel "sort" e temo che la variazione possa produrre effetti negativi
ciao
Marino
 
Discussioni simili
Autore Titolo Forum Risposte Data
N Somma di variabili PHP 3
G scomponi un numero intero come la somma di 20 numeri interi casuali maggiori di zero diversi fra loro Javascript 1
F Somma di più tabelle da script Javascript 0
E Help Sql somma orari PHP 32
M Somma inversa di Array C/C++ 2
A Moltiplicazione tramite somma PHP 5
A Somma di orari con centesimi PHP 1
V Somma foreach PHP 2
V Somma Risposte PHP 5
V Query per una somma PHP 2
G Somma dei Minuti PHP 3
L somma e informa PHP 16
L query somma PHP 8
L salvare somma con sottrazione PHP 1
W fare la somma di un valore estratto da un ciclo while Classic ASP 0
A Somma delle colonne di una tabella pivot Database 6
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
R php Somma valori in file csv PHP 2
Emix [Javascript] Somma con array input HTML Javascript 1
A [MS Access] Somma Campi se in altro campo presente un determinato testo MS Access 1
A [Javascript] Somma di un campo in una tabella dinamica Javascript 0
T Problema somma mysql MySQL 8
A [Javascript] Somma di input dinamici Javascript 1
B Somma armonica jQuery 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
P [PHP] somma totale imponibile e totale fattura PHP 3
Z Somma di numeri in una lista di app inventor Sviluppo app per Android 0
V Somma anni ad una data con datepicker jQuery 1
A [PHP] Somma in unico risultato di più tabelle PHP 6
T [PHP] matrice con somma diagonali PHP 2
Trapano [PHP] somma di una lista di pagamenti PHP 2
Bunz [Javascript] somma orario input + calcolo straordinario Javascript 3
P Query con Somma di un Campo , aggregazione e join Database 3
A Aiuto somma di campi MS Access 0
A Somma di sottoreport su report Database 2
A Controllo somma di valori in una select Ajax 1
R Sistema di conteggio (somma) HTML e CSS 4
G Somma dati se codice uguale Classic ASP 4
G Somma di report e sottoreport MS Access 0
Emix Somma automatica checkbox Javascript 1
Akuma Somma dei campi in una tabella PHP 1
felino Microsoft Excel: somma su un'intera colonna Windows e Software 1
felino [JS] Passare un array ed effettuare la somma degli elementi Javascript 2
V perchè una somma può non funzionare? PHP 4
M Somma di due record MySQL 7
blips Controllo somma di valori in una select Javascript 5
C [RISOLTO] Problema somma td, prende solo il primo valore jQuery 7
Emix Somma su punti con controllo vip PHP 5
L Somma solo se non riappare elemento PHP 4
L somma elementi, finché elementi di altro array sono uguali PHP 2

Discussioni simili