Applicare funzione php ad ogni elemto html

Malware

Utente Attivo
19 Lug 2012
112
0
0
Non avete capito niente, lo so, non sapevo come spiegare:D

Allora...intanto buongiorno e buoncondizionatore a tutti:fonzie:

Ho questo codice PHP, che mi stampa a video 11 blocchi di codice html, tra cui 11 slider (<div id="slider"></div>).
Questo slider è un slider che con i mouse può essere spostato a destra e sinistra, e una funzione ajax al tempo stesso nell'<input id="amount"> incrementa o decrementa il valore.

Ecco il codice:

PHP:
for ($n=1; $n<=count($display_order); $n++) {
?>

	<tr class="ed14_table_tr1">
	
		<td class="ed14_table_td1"><?php print $units_name[$display_order[$n]]; ?></td>
		
		<td class="ed14_table_td2">
				<div id="div_ed2">
					<div id="slider"></div>
					<input type="hidden" id="max_cittadini_acca" value="<?php print $max; ?>">
				</div>
		</td>
		
		<td class="ed14_table_td3">
			<input type="text" id="amount" style="border: 0; color: #61210B; font-weight: bold;" />
			<input type="button" class="submit" id="button_cittadini_acca" value="Recluta">
		</td>
		
	</tr class="ed14_table_tr2">
	
	<tr>
	
		<td class="ed14_table_td4">Requisiti</td>
		
		<td class="ed14_table_td5">Descrizione</td>
		
		<td class="ed14_table_td6">Numero</td>
		
	</tr>
<?php
}
La parte interessata è il secondo TD di ogni prima riga.

Ecco la parte ajax:

Codice:
function slider(nmax,nactual) {

$(function() {
    $( "#slider" ).slider({
      value: nactual,
      min: 0,
      max: nmax,
      step: 1,
      slide: function( event, ui ) {
        $( "#amount" ).val(ui.value );
      }
    });
    $( "#amount" ).val($( "#slider" ).slider( "value" ) );
  });

}
Il problema è che Ajax ffa diventare slider soltanto il primo <div id="slider"> stampato in php.
Gli altri non me li "converte".
Ho provato a modificare provando a fare un'array, un po' a casaccio, ma non ha funzionato.
Idee?

Grazie in anticipo;)



PS. titolo sbagliato, la funzione è in ajax:/
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non puoi assegnare lo stesso id a più di un elemento
visto che hai un contatore in php potresti cambiare id ad ogni iterazione in questo modo
PHP:
<div id="slider<?php echo $n?>"></div>
ti ritroverai una serie di div con id univoco
HTML:
<div id="slider1>"></div>
<div id="slider2>"></div>
<div id="slider3>"></div>
 

Malware

Utente Attivo
19 Lug 2012
112
0
0
Ciao Criric

Ho fatto esattamente così, poi ho richamat la funzione ajax con questo:

PHP:
<script>
<?php 
echo 'slider("'.$max_units[$display_order[$n]].'","0","#slider'.$n.'","#amount'.$n.'");';
?>
</script>
Codice ajax:

Codice:
function slider(nmax,nactual,ndiv,namount) {

$(function() {
    $(ndiv).slider({
      value: nactual,
      min: 0,
      max: nmax,
      step: 1,
      slide: function( event, ui ) {
        $( namount ).val(ui.value );
      }
    });
    $(namount).val($(ndiv).slider( "value" ) );
  });

}
nmax: numero maxche lo slider può avere
nactual: attuale valore del div al momento del caricamento della pagina
ndiv: nome del div
namount: nome dell'input text dove c'è il valore numero del div


E tutto questo funziona alla grande:)

Ora però un'altra cosa.
Nello slider l'utente seleziona un certo numero di fette di torte.
Per ogni fetta di torta servono vari elementi, ad esempio serve dell'elemento A una quantità 30 e dell'elemento B una quantità 10.
Se l'utente seleziona nello slider 4 fette, vorrei che in un div uscissero le quantità necessarie per fare quattro fette di torte: 120 di A e 40 di B.
Ho fatto quest funzione e funziona, ma domanda è: ho inserito il richiamo della funzione quando il mouse passa sopra al div slider.
Codice:
<div id="slider<?php print $n; ?>" class="slider" onMouseMove="javascript: time_needed('<?php print $display_order[$n]; ?>');"></div>
C'è un modo perchè la funzione venga richiamata quando il "pallino" dello slider viene spostato o comunque quando si rilascia il click del mouse dal pallno?
Il problema è che il pallino non è un elemento html...c'è un modo per far questo senza modificare il codice ajax? Con ajax ho seri problemi sentimentali:dipser:
Chiedo questo perchè un utente può cliccare il pallino con il mouse, tener premuto, ma spostar il pallino uscendo con il mouse dalla barra (il div) e quindi la funzione in quel caso non viene richiamata.

Grazie in anticipo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
puoi provare con gli eventi
onmousedown() // quando viene premuto il tasto mouse
onmouseup() // qunado viene rilasciato