Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    [jquery]autocomplete su tabelle create da php

    ciao a tutti
    partendo da una tabella creata da php
    Codice PHP:
            
            
    <tr>
                <
    td align="center">
                    <
    input type="button" value="A" /><input type="button" value="V" />
                </
    td>
                <
    td align="center"><input type="button" value="x" id="elimina2" onclick="$(this).parents('tr:first').remove();recalc();" />
                <
    td align="center">
                    <
    h1 id="JQcodice_2"></h1>
                    <
    input type="hidden" name="codice2" id="JQhidCodice_2" value="">
                    <
    input type="hidden" name="id_art2" id="JQidArt_2" value="626">

                </
    td>
                <
    td align="center">
                    <
    input type="text" id="JQdesc_2" size="70" name="desc2" value="DV191RV NELLA GIORNATA DEL 16/01/2010">
                </
    td>
                <
    td align="center"><input type="text" id="JQprezzo_2" size="8" name="n_art2-prezzo" value="500.00" onkeyup="recalc();"></td>
                <
    td align="center"><input type="text" id="JQunita_2" size="2" name="n_art2-vendi" value="1.00" onkeyup="recalc();"></td>
                <
    td align="center"><h1 id="JQprezzoUnita_2"></h1></td>
                <
    td align="center"><input type="text" id="JQsconto_2" size="2" name="n_art2-sconto" value="0" onkeyup="recalc();"></td>
                <
    td align="center"><h1 id="JQprezzoSconto_2"></h1></td>

                <
    td align="center"><input type="text" id="JQiva_2" size="2" name="n_art2-iva" value="20" onkeyup="recalc();"></td>
                <
    td align="center"><h1 id="JQivaEuro_2"></h1></td>
                <
    td align="center"><h1 id="JQtotale_2"></h1></td>
            </
    tr>
            
            <
    tr>
                <
    td align="center">
                    <
    input type="button" value="A" /><input type="button" value="V" />
                </
    td>
                <
    td align="center"><input type="button" value="x" id="elimina3" onclick="$(this).parents('tr:first').remove();recalc();" />

                <
    td align="center">
                    <
    h1 id="JQcodice_3"></h1>
                    <
    input type="hidden" name="codice3" id="JQhidCodice_3" value="">
                    <
    input type="hidden" name="id_art3" id="JQidArt_3" value="627">
                </
    td>
                <
    td align="center">
                    <
    input type="text" id="JQdesc_3" size="70" name="desc3" value="">
                </
    td>
                <
    td align="center"><input type="text" id="JQprezzo_3" size="8" name="n_art3-prezzo" value="0.00" onkeyup="recalc();"></td>

                <
    td align="center"><input type="text" id="JQunita_3" size="2" name="n_art3-vendi" value="0.00" onkeyup="recalc();"></td>
                <
    td align="center"><h1 id="JQprezzoUnita_3"></h1></td>
                <
    td align="center"><input type="text" id="JQsconto_3" size="2" name="n_art3-sconto" value="0" onkeyup="recalc();"></td>
                <
    td align="center"><h1 id="JQprezzoSconto_3"></h1></td>
                <
    td align="center"><input type="text" id="JQiva_3" size="2" name="n_art3-iva" value="no" onkeyup="recalc();"></td>
                <
    td align="center"><h1 id="JQivaEuro_3"></h1></td>
                <
    td align="center"><h1 id="JQtotale_3"></h1></td>
            </
    tr>
    etc... 
    e questa funzione che mette l'autocomplete su tutti gli input con id JQdesc_xxx
    Codice PHP:
    $("[id^=JQdesc_]").autocomplete({
                        
    source"../../ajax_articolo.php",
                        
    minLength3,
                        
    select: function( eventui ) {
                            $(
    "#JQcodice_"+nim).empty().append(ui.item.codice)
                            $(
    "#JQhidCodice_"+nim).val(ui.item.codice)
                            $(
    "#JQidArt_"+nim).val(ui.item.id)
                            $(
    "#JQprezzo_"+nim).val(ui.item.prezzo_ven)
                            $(
    "#JQunita_"+nim).val("1")
                            $(
    "#JQprezzoUnita_"+nim).empty().append(ui.item.prezzo_ven)
                            $(
    "#JQsconto_"+nim).val("0")
                            $(
    "#JQprezzoSconto_"+nim).empty().append(ui.item.prezzo_ven)
                            $(
    "#JQiva_"+nim).val(ui.item.iva)
                            $(
    "#JQtotale_"+nim).empty().append(function(){$(this).calc(
                                        
    // the equation to use for the calculation
                                        
    "price+((price/100)*iva)",
                                        
    // define the variables used in the equation, these can be a jQuery object
                                        
    {
                                            
    price: $("input[id^=JQprezzo_]"),
                                            
    iva: $("input[id^=JQiva_]")
                                        },
                                        
    // define the formatting callback, the results of the calculation are passed to this function
                                        
    function (s){
                                            
    // return the number as a dollar amount
                                            
    return s.toFixed(2);
                                        }
                                    )
                                })
                            
    recalc()
                            }
                        }); 
    è una funziona che uso e funziona anche se la uso contestualmente alla creazione di tabelle dinamiche con jquery, infatti '+nim' è ancora un residuo
    Codice PHP:
    $("#JQcodice_"+nim
    quello che vi chiedo sarebbe un piccolo(spero) aiuto per sostiruire 'nim' in modo che possa andare ad aggiornare i campi di quella riga.

    avevo pensato ad una funzione presa dal plugin.calculation, che recupera i nuemri di un id
    ma penso sia un metodo (oltre complicato) 'pesante' da gestire.

    si può gestire con una cosa tipo $(this).("#JQcodice_") ? <-- ovviamnete ho scritto una cavolata ma era per capirecosa cercavo.

    ciao

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    nella funzione richiamata al "select", ricavati prima di tutto la parte numerica da ui.item.id con
    var nim=ui.item.id.substr(ui.item.id.indexOf('_')+1);

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    var nim=ui.item.id.substr(ui.item.id.indexOf('_')+1);

    hm con
    ui.item.id.indexOf('_')+1
    da quello che ho capito recupero la posizione del numero

    e con
    ui.item.id.substr()
    si fa il subtring a recuperare il dato.

    ok capito tutto
    grazie!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    hm sto sbagliando qualcosa. ci mangio su e poi ci ripenso.
    in pratica su 10 righe, ovunque io scriva con l'autocomplete i dati successivi poi vengono scritti sulla seconda riga.

    sicuramente toppo qualcosa. dopo mi leggo meglio le funzioni e ci lavoro un po su
    intanto posto lo script
    Codice PHP:
    $(function(){
        var 
    nim;
        $(
    "[id^=JQdesc_]").autocomplete({
                        
    source"../../ajax_articolo.php",
                        
    minLength3,
                        
    select: function( eventui ) {
                            
    nim=ui.item.id.substr(ui.item.id.indexOf('_'));
                            $(
    "#JQcodice_"+nim).empty().append(ui.item.codice)
                            $(
    "#JQhidCodice_"+nim).val(ui.item.codice)
                            $(
    "#JQidArt_"+nim).val(ui.item.id)
                            $(
    "#JQprezzo_"+nim).val(ui.item.prezzo_ven)
                            $(
    "#JQunita_"+nim).val("1")
                            $(
    "#JQprezzoUnita_"+nim).empty().append(ui.item.prezzo_ven)
                            $(
    "#JQsconto_"+nim).val("0")
                            $(
    "#JQprezzoSconto_"+nim).empty().append(ui.item.prezzo_ven)
                            $(
    "#JQiva_"+nim).val(ui.item.iva)
                            $(
    "#JQtotale_"+nim).empty().append(function(){$(this).calc(
                                        
    // the equation to use for the calculation
                                        
    "price+((price/100)*iva)",
                                        
    // define the variables used in the equation, these can be a jQuery object
                                        
    {
                                            
    price: $("input[id^=JQprezzo_]"),
                                            
    iva: $("input[id^=JQiva_]")
                                        },
                                        
    // define the formatting callback, the results of the calculation are passed to this function
                                        
    function (s){
                                            
    // return the number as a dollar amount
                                            
    return s.toFixed(2);
                                        }
                                    )
                                })
                            
    recalc()
                            }
                        });

    l'assegnazione di nim l'ho fatta dentro a select: function( event, ui ) {
    perchè se no ui. non era riconosciuto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    ok risolto tutto
    grazie come sempre xinod

    il problema stava nell'uso di ui.item.id che che è un valore ricavato tramite json array ed era l'id dell'elemento ricavato..

    avendo anche righe vuote ovviamente dava errore.

    ho semplicemente ricavato l'id dal'input in cui scrivo.

    var currentId = this.id;
    var nim=currentId.substr(currentId.indexOf('_')+1);

    grazie ancora,
    senza di te probabilmente non ce l'avrei mai fatta. o magari ci avrei perso giornate

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    no problem

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.