Hur generalisera jquery?

PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
marcusgarden



Medlem i: 2951 dagar

Status: Offline



#742184
Inlägg Skrivet: 2018-04-15 22:19      Ämne: Hur generalisera jquery? Citera

Jag har en foreach i PHP där jag ska kunna ändra mailadresser med hjälp av jquery och ajax, det jag gör idag är att köra en jquery i varje loop på min foreach, detta gör att min sia blir mycket långsam:/

Jag förstår att jag skulle kunna ha EN jquery som ALLA loopar i min foreach anropar men jag får inte till det:/

Hur uppnår jag det?
Idag har jag:

KOD:
1:
<script type="text/javascript">
2:
         
3:
               jQuery(document).ready(function($) {
4:
                  jQuery(document).ready(function() {            
5:
                     jQuery(document).on('click', '#search_<?php echo $entry->id; ?>', function() {
6:
                        jQuery('#ajax_<?php echo $entry->id; ?>').show();
7:
                           jQuery('#info_<?php echo $entry->id; ?>').html('');
8:
                           
9:
                           mail_<?php echo $entry->id; ?> = jQuery('#mail_<?php echo $entry->id; ?>').val();
10:
                           
11:
                           jQuery.ajax({
12:
                              type: 'post',
13:
                              url: 'editmail.php',
14:
                              data: 'mail='+encodeURIComponent(mail_<?php echo $entry->id; ?>)+'&id=<?php echo $entry->id; ?>',
15:
                              success: function(data) {
16:
                              jQuery('#ajax_<?php echo $entry->id; ?>').hide();
17:
                              jQuery('#info_<?php echo $entry->id; ?>').html(data);
18:
                              }
19:
                           });
20:
                        });
21:
                     });
22:
               });
23:
            </script>


samt

KOD:
1:
<div id="container">
2:
               <div id="form">
3:
                  <?php
4:
                     echo '<div id="search_'.$entry->id.'" class="mybtn1 search_'.$entry->id.'">Ändra mailadress!</div>';
5:
                  ?><br>
6:
                  <input style="font-size:10px;" type="text" name="mail_<?php echo $entry->id; ?>" id="mail_<?php echo $entry->id; ?>" value="<?php echo $entry->mail; ?>" size="35">
7:
               </div>
8:
               <div id="ajax_<?php echo $entry->id; ?>"></div>
9:
               <div id="info_<?php echo $entry->id; ?>"></div>
10:
            </div>


Tack på förhand!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4412 dagar
Från: Tavesta
Status: Offline



#742185
Inlägg Skrivet: 2018-04-16 11:20      Ämne: Citera

Jag hade nog valt en betydligt enklare lösning här.
Koden på rad 6 och framåt i övre kodexemplet stoppar du in i en helt vanlig funktion, som tar entry-id som parameter.

I diven som man skall klicka på så kan du då använda onclick-attributet, och där lägga ett anrop till funktionen ovan.

En annan lösning är att ha en gemensam klass på alla klickbara divar, och i document-ready-funktionen koppla hela den klassen till koden som gör jobbet.
I det läget kan det kanske vara bra att ha entry-id i ett dataattribut, så det enkelt blir åtkomligt via this.dataset.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
marcusgarden



Medlem i: 2951 dagar

Status: Offline



#742186
Inlägg Skrivet: 2018-04-16 12:48      Ämne: Citera

Ok, tack för svar!

Men hur löser jag då att se resultatet?

Jag vill ju någonstans få ett svar på samma sida, utan att ladda om sidan, om vad som faktiskt hänt.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4412 dagar
Från: Tavesta
Status: Offline



#742187
Inlägg Skrivet: 2018-04-16 13:36      Ämne: Citera

I nuläget kommer du åt rätt ruta att lägga svaret i genom att känna till entry-id. Du bör likaväl kunna använda javascript för att få in rätt entry-id i din jquery-kod.
jQuery('#info_'+entry_id) ...
Hur du får in rätt värde i variabeln entry_id beror på hur du lägger upp koden i övrigt
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic