Codul js functioneaza doar la un singur buton !

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

rsergyu
Junior Member
Mesaje: 33
Membru din: Vin Feb 10, 2012 3:53 pm

Codul js functioneaza doar la un singur buton !

Mesajde rsergyu » Sâm Sep 15, 2012 6:13 pm

Buna ziua incerc sa fac un sistem spunei unui prieten cu recompensare

Am facut interfata codul js si verificarea php dar codul js trimite date doar de la un singur buton .

Adica daca am mai multe invitatii trimise si doresc sa primesc recompensa de la mai multe butonul care imi da recompensa este activ doar pentru prima pozitie care apare in tabel

Acesta este codul :

prieteni_invitati.php

Cod: Selectaţi tot

<?php

$query_loto=mysql_query("SELECT * FROM add_prieten WHERE user= '$user' ORDER BY data");


$color="1";

echo '<table width="100%" align="center" cellpadding="2" cellspacing="0">

<tr><td colspan="4" style="padding:5px 0px 5px 15px; font-size:22px; border-top:solid #fff;">Invitatii trimise</td></tr><tbody >';
   
   while($rand = mysql_fetch_array($query_loto, MYSQL_ASSOC)){

$stare= 0;
$mail_c=$rand['mail_inv'];
$q_cont= mysql_query("SELECT * FROM user WHERE adresa_mail='$mail_c' LIMIT 1");
if (mysql_num_rows($q_cont) == 1) {
$s_cont=mysql_fetch_assoc($q_cont);
if ($s_cont['activ'] == 1) {
   $s_c= 1;
$stare= "<input type='hidden' value=".$s_c." name='s_cont' id='s_cont' /><img style='position:relative; left:-15px; top:8px;' src='images/ok_mark.png' alt='Activ' height='24' width='24' />";
   } else {
   $s_c= 0;
$stare= "<input type'hidden' value=".$s_c." name='s_cont' id='s_cont' /><img style='position:relative; left:-15px; top:8px;' src='images/peading.png' alt='Inactiv' height='24' width='24' />";
}
}else {
$s_c= 0;
$stare= "<input type='hidden' value=".$s_c." name='s_cont' id='s_cont' /><img style='position:relative; left:-15px; top:8px;' src='images/x_mark.png' alt='Neinregistrat' height='24' width='24' />";
}

echo "<tr style=' text-align:center;' ><td style='padding:5px;' colspan ='5' width='100%'>
<table id='t_colect' bgcolor='#FFC600' style='border:2px solid #62C1DE; ' >
      <tr>
   <td style='width:15%; width: font-size:16px; padding-left:10px; '>".$rand['nume_inv']."</td>
   <td style='width:30%; font-size:16px; padding-left:10px; '>".$rand['mail_inv']."</td>
   <td style='width:30%; font-size:16px; padding-left:10px; '>".$rand['data']."</td>
   <td style='width:5%; text-align:center; font-size:16px; padding-left:10px; '>".$stare ."</td>
   <td style='width:15%; padding-bottom:4px;'>
      <input type='hidden' value=".$rand['colect']." name='s_col' id='s_col' />
      <input type='hidden' value=".$user." name='s_user' id='s_user' />
      <input type='hidden' value=".$rand['id']." name='s_id' id='s_id' />
      <button name='colect' id='colect' />Colecteaza</button>
   </td>
     </tr>
</table>
</td></tr>
";



}

echo '<tr><td colspan="5"><span id="col_span"></span></td></tr>
     <tr><td colspan="5" style="padding-top:10px; font-size:12px; border-top:solid #fff; color:#202020;" >
      <img  src="images/x_mark.png" alt="Neinregistrat" height="24" width="24" /> = Neinregistrat (Nu poti incasa bonusul)&nbsp;&nbsp;
      <img  src="images/peading.png" alt="Inactiv" height="24" width="24" /> = Inactiv (Nu poti incasa bonusul)&nbsp;&nbsp;
      <img  src="images/ok_mark.png" alt="Activ" height="24" width="24" /> = Activ (Poti incasa bonusul)   
   </td>
     </tr>
</tbody></table></div></div></td></tr></table>';


?>   


Cod: Selectaţi tot

$(document).ready(function() {
   $("#colect").click(function() {
      var process = true;
      $("#t_colect input").each(function() {
         if ($.trim(this.value) == "") {
            process = false;
         }
      });
      if (process == true) {
         
      var cont = $.trim($("#s_cont").val());
      var stare =$.trim($("#s_col").val());
      var user =$.trim($("#s_user").val());
      var id =$.trim($("#s_id").val());
               
                                 
         $("#col_span").html("<img src='images/loading.gif' height='20' align='absmiddle' />");
         $.post("scripts/verificare_colect.php", { action: "check", stare: stare , cont: cont , user: user , id: id}, function(check_data) {
                  if (check_data == 0) {
                     
                     $("#t_colect input, #t_colect button ").each(function() {
                        $("#"+this.id).attr("disabled", "disabled");
                     });
                     $("#col_span").html("<font color='#009900' size='-1'>Felicitari ai primit bonusul de puncte !</font>");
                  } else if (check_data == 1) {
                     
                     $("#col_span").html("<font color='#ff0000' size='-1'>Ai primit deja bonusul din partea acestui prieten !</font>");
                  } else if (check_data == 2) {
                     
                     $("#col_span").html("<font color='#ff0000' size='-1'>Prietenul tau inca nu si-a activat contul pentru a primi bonusul !</font>");
                  } else {
                     // Debugging
                     alert(check_data);
                  }
               });
               
               
            
         
         
      } else {
         $("#col_span").html("<font color='#ff0000' size='-1'>Toate informatiile sunt obligatorii!</font>");
      }
      
   });
});


Daca mai sunt informatii neclare va rog sa spuneti ! Multumesc ![/code]



Reventon
Average Member
Mesaje: 68
Membru din: Lun Ian 31, 2011 5:07 pm

Mesajde Reventon » Dum Sep 16, 2012 2:15 pm

cred ca te complici putin

Cod: Selectaţi tot

echo '<table width="100%" align="center" cellpadding="2" cellspacing="0">

<tr><td colspan="4" style="padding:5px 0px 5px 15px; font-size:22px; border-top:solid #fff;">Invitatii trimise</td></tr><tbody >';


este echivalent cu

Cod: Selectaţi tot

?><table width="100%" align="center" cellpadding="2" cellspacing="0">

<tr><td colspan="4" style="padding:5px 0px 5px 15px; font-size:22px; border-top:solid #fff;">Invitatii trimise</td></tr><tbody ><?php



apoi, incearca sa nu faci atatea query-uri, suprasoliciti baza de date.

selecteaza totul intr-un singur query, si adauga tabelul 'user' folosind comanda "LEFT JOIN"

ceva de genul:

Cod: Selectaţi tot

SELECT * FROM add_prieten
LEFT JOIN user
ON add_prieten.id = user.id
WHERE user= '$user'
ORDER BY data


mintea noastra gaseste solutii pe baza cunostintelor actuale.
daca are deficit de cunoastere, va gasii niste soluti mai greoaie, solutii bazate pe cunostintele actuale.
deci daca mintea ta spune ca un lucru este greu si nu poate fi facut cu usurinta, te minte

rsergyu
Junior Member
Mesaje: 33
Membru din: Vin Feb 10, 2012 3:53 pm

Mesajde rsergyu » Dum Sep 16, 2012 8:55 pm

Ms mult pentru raspuns , si pentru sfaturi dar tot nu imi dau seama cum sa fac sa functioneze butonul pentru fiecare rand in parte ?

tanatos
Senior Member
Mesaje: 269
Membru din: Vin Iun 06, 2008 8:01 pm
Localitate: Iasi
Contact:

Mesajde tanatos » Lun Sep 17, 2012 6:50 am

Daca folosesti ID , in javascript id-ul este unic intr-un document.
Deci schimba in loc de id="colect" in class="colect" si in loc de #colect => .colect.

rsergyu
Junior Member
Mesaje: 33
Membru din: Vin Feb 10, 2012 3:53 pm

Mesajde rsergyu » Mar Sep 18, 2012 5:12 pm

acum merg si celelalte butoane dar orice buton as apasa imi prelucreaza datele de la primul rand !

Eu as dori sa prelucreze datele de pe randul in care este introdus !

hadyh
Average Member
Mesaje: 118
Membru din: Mar Noi 30, 2010 12:57 pm

Mesajde hadyh » Mar Sep 18, 2012 5:30 pm

din cauza ca le pui pe primele in ajax tot timpul.

adica trebuie sa modifici

Cod: Selectaţi tot

      var cont = $.trim($("#s_cont").val());
      var stare =$.trim($("#s_col").val());
      var user =$.trim($("#s_user").val());
      var id =$.trim($("#s_id").val());


in

Cod: Selectaţi tot

      var cont = $.trim($(this).parent().find("input[name='s_cont']").val());
      var stare =$.trim($(this).parent().find("input[name='s_col']").val());
      var user =$.trim($(this).parent().find("input[name='s_user']").val());
      var id =$.trim($(this).parent().find("input[name='s_id']").val());

rsergyu
Junior Member
Mesaje: 33
Membru din: Vin Feb 10, 2012 3:53 pm

Mesajde rsergyu » Mie Sep 19, 2012 6:49 pm

Iti multumesc foarte mult hadyh ,a mers !


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 25 vizitatori