2016-02-26 74 views
0

我有一個PHP循環,每個項目,打開一個燈箱的鏈接生成。我怎麼能傳遞與當前迭代有關的數據(比如用戶標識符),以便我可以在燈箱和表單提交中使用它?發送php數據到JavaScript點擊事件

<?php 
foreach ($results as $viewUser) 
    { 
      if ($viewUser) 
      { 
       echo '<a class="change-email" href="#">Change Email</a>'; 
      } 
    } 
} 
?> 

<script> 
$(function(){ 
    $(".change-email").click(function(){ 

      $.fancybox({ 
       'href'    : '#change-email-dialog', 
       'width'    : '200px', 
       'height'   : 'auto', 
       'autoScale'   : true, 
       'transitionIn'  : 'fade', 
       'transitionOut'  : 'fade', 
       'type'    : 'inline', 
       'modal'    : false, 
       'afterShow'   : function() { 

       } 
      }); 
     }); 
}); 
</script> 

<div id="change-email-dialog"> 
    <form id="change-email-form" class="table" method="POST" action="<?php echo site_url('customerservice/changeEmail').'user='.$viewUser->getBusID(); ?>"> 
     <ul class="table-row"> 
      <li class="table-cell">New Email</li> 
      <li class="table-cell"><input type="text" name="newEmail" /></li> 
     </ul> 
     <ul class="table-row"> 
      <li class="table-cell">Notify Contract Entry?</li> 
      <li><input type="checkbox" checked="checked" name="notify" /></li> 
     </ul> 

     <ul class="table-row"> 
      <li><input name="userSearchSubmit" type="submit" value="Save" /></li> 
     </ul> 

    </form> 
</div> 
+0

我會做的是從JavaScript中刪除'.click',添加一個參數,例如'function(id)',然後當回顯鏈接時,添加'onclick = \「function(」。 $ myid。 「\」' – aron9forever

回答

0

擴大對我的評論把它,你可以從JavaScript和剛取出.click事件離開功能。然後你可以在HTML中調用onclick事件的函數,同時也傳遞你的變量。它看起來像這樣

<?php 
foreach ($results as $viewUser) 
    { 
      if ($viewUser) 
      { 
       echo '<a class="change-email" href="#" onclick="changemail(' . $myid . ');">Change Email</a>'; 
      } 
    } 
} 
?> 

<script> 
function changemail(myid){ 
$.fancybox({ 
    'href'    : '#change-email-dialog', 
    'width'    : '200px', 
    'height'   : 'auto', 
    'autoScale'   : true, 
    'transitionIn'  : 'fade', 
    'transitionOut'  : 'fade', 
    'type'    : 'inline', 
    'modal'    : false, 
    'afterShow'   : function() { 

    } 
} 
</script> 

myid在JavaScript將包含任何$myid包含在PHP。

1

您可以添加任何數據轉換成HTML

echo '<a class="change-email" href="#" data-userid="$viewUser.id">Change Email</a>'; 

後來與JS

$(this).data('userid') 
1

您可以使用數據屬性。

它們添加到你的PHP ..

echo '<a class="change-email" href="#" data-userid=".$userID.">Change Email</a>'; 

..然後你可以輕鬆地訪問他們在JavaScript ..

this.dataset.userid 
1
<?php 
    foreach ($results as $viewUser) 
     { 
       if ($viewUser) 
       { 
        echo '<a data-user="<?=$viewUser->userId?>" class="change-email" href="#">Change Email</a>'; 
       } 
     } 
    } 
    ?> 
<script> 
$(function(){ 
    $(".change-email").click(function(){ 
      var user = $(this).data("user"); 

      $.fancybox({ 
       'href'    : '#change-email-dialog', 
       'width'    : '200px', 
       'height'   : 'auto', 
       'autoScale'   : true, 
       'transitionIn'  : 'fade', 
       'transitionOut'  : 'fade', 
       'type'    : 'inline', 
       'modal'    : false, 
       'afterShow'   : function() { 
        $("#user_input").val(user); 
       } 
      }); 
     }); 
}); 
</script> 

<div id="change-email-dialog"> 
    <form id="change-email-form" class="table" method="POST" action="<?php echo site_url('customerservice/changeEmail').'user='.$viewUser->getBusID(); ?>"> 
     <input id="user_input" type="hidden" name="user" value="" /> 
     <ul class="table-row"> 
      <li class="table-cell">New Email</li> 
      <li class="table-cell"><input type="text" name="newEmail" /></li> 
     </ul> 
     <ul class="table-row"> 
      <li class="table-cell">Notify Contract Entry?</li> 
      <li><input type="checkbox" checked="checked" name="notify" /></li> 
     </ul> 

     <ul class="table-row"> 
      <li><input name="userSearchSubmit" type="submit" value="Save" /></li> 
     </ul> 

    </form> 
1

你的JavaScript查詢有機會返回多個結果

更改爲此

$(function(){ 
    $(".change-email").each(function() { 
     $(this).click(function(){ 
      $.fancybox({ 
       'href'    : '#change-email-dialog', 
       'width'    : '200px', 
       'height'   : 'auto', 
       'autoScale'   : true, 
       'transitionIn'  : 'fade', 
       'transitionOut'  : 'fade', 
       'type'    : 'inline', 
       'modal'    : false, 
       'afterShow'   : function() { 

       } 
      }); 
     }); 
    }); 
});