Applicare funzione php ad ogni elemto html

  • Creatore Discussione Creatore Discussione Malware
  • Data di inizio Data di inizio

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:/
 
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>
 
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
 
puoi provare con gli eventi
onmousedown() // quando viene premuto il tasto mouse
onmouseup() // qunado viene rilasciato
 

Discussioni simili