6
Ho bisogno di aggiornare una riga di tabella specifica (tramite tr id = "unique_key") dopo una chiamata AJAX riuscita.Aggiornamento riga tabella con ID specificato con jQuery
frammentoHTML:
<a name=\"p{$product_id}\" class=\"tr{$product_id}\"></a>
<tr id="p{product_id}" class="item-row">
<td><h3>{product_id}</h3><a rel="facebox" href="ajax_url">{product_name}</a></td>
<td>{image_information}</td>
<td>{image_sortiment}</td>
<td>{product_status}</td>
</tr>
JavaScript:
// AJAX Call
success: function(msg){
$('#p' + prod_id).remove();
$('.tr' + prod_id).after(msg);
$('#p' + prod_id + ' a[rel*=facebox]').facebox();
}
...
Cosa accade:
- La riga della tabella rimosso
- ancore raggruppati in un'unica fila (non prima del loro
<tr>
è così che il mio "gancio" scompare - risultato AJAX inserito su tutto il tavolo (dopo la mia 'gancio', ma ancora un posto sbagliato)
Cosa c'è di sbagliato con la mia idea? Come posso forzare jQuery a 'sovrascrivere' la riga della tabella richiesta?
Cosa viene restituito dalla richiesta AJAX, il nuovo '
risposta
Non è possibile avere ancore all'interno della tabella ma all'esterno delle righe della tabella. Tutto il contenuto di una tabella deve trovarsi all'interno delle celle della tabella. Se metti il contenuto fuori dalle celle, i browser tentano di correggere il codice in modo che sia possibile visualizzarlo, di solito spostandolo dopo la tabella.
La manipolazione del contenuto in una tabella può essere complicata, può agire se si aggiungono righe come blocchi di HTML anziché elementi di riga. Usa la funzione jQuery per creare elementi dalla stringa che ottieni.
fonte
2010-04-29 07:45:09 Guffa
Spero che l'html non sia un problema ma tu hai confermato: lo è. Grazie per questo. Sfortunatamente non posso passare attraverso ogni file del mio tavolo perché è troppo grande per questo - penso. – fabrik
@fabrik: non è necessario scorrere tutte le righe. Ogni elemento di riga ha una proprietà 'rowIndex' che puoi usare per sapere dove si trova la riga' rows' della tabella. – Guffa
Fantastico! Ingegnoso! Grazie per questo! Ho guardato ogni singola pagina su jQuery Wiki, sembra che non fosse abbastanza vigile. Grazie ancora! – fabrik
Nulla sembra sbagliato nell'idea.
Provare a sostituire il contenuto di ogni all'interno di quello
TR
invece di rimuoverlo e aggiungerne uno nuovo.fonte
2010-04-29 07:45:40
Basta è un'idea, tryout questo
tuo tr deve essere singolo o molti, concate prodotto tr id con costante e con valore di incremento, come questo
Se avete intenzione di eliminare significa solo passare la posizione tr con id prodotto e ottenere il valore corretto da rimuovere e visualizzare il tr nell'ordine.
fonte
2010-04-29 07:46:40 Karthik
Questo non è abbastanza buono perché potrei aggiornare la riga della tabella tutte le volte che l'utente aggiorna i dettagli del prodotto. La tua soluzione funziona per un aggiornamento, penso. Grazie per il tuo commento. – fabrik
Non è possibile avere elementi non di tabella direttamente all'interno di
<table>
ma non all'interno di<td>
o<th>
. I browser non lo renderanno correttamente.quindi bisogna inserire ancore in un altro
<tr><td> .. </td></tr>
Ma se sono lì solo per rimuovere riga e creare uno nuovo, si può provare replaceWith() invece:
fonte
2010-04-29 07:50:32 Voyta
Scusa se ho visto prima la risposta di Guffa. A proposito, risparmierò la tua risposta. Grazie! – fabrik
negozio tr id in una variabile chiamata updateID (renderla una variabile globale) e quindi nel successo dell'ajax usa il selettore jQuery $ ('tr # 2 td') per restituire una matrice di elementi td all'interno di tr # 2. Quindi per il Tracking # td all'indice 1 viene assegnata la variabile tracking112. Allo stesso modo td all'indice 2 è assegnato a charge112.
Forma valori assegnati ai elements.This td tabella tr sarebbe aggiornare la riga con i valori che sono stati inviati dal modulo inviato.
fonte
2013-02-21 14:32:48
Problemi correlati