php jquery ajax joomla

php - pasar elemento específico de la matriz a ajax en el módulo joomla 3



jquery (1)

agregue campos ocultos como este

<?php foreach ($animalDetails as $profile):?> <tr> <td><?php echo $profile->photo;?></td> <td><span class="profile">Name:<?php echo $profile->name;?></span><br/> <span class="profile">Sex: <?php echo $profile->sex;?></span></<br/> <input type="submit" class="summary" name="summary" value="VIEW MY PROFILE"> </input> <input type="hidden" class="name" value="<?php echo $profile->name;?>" /> <input type="hidden" class="sex" value="<?php echo $profile->sex;?>" /> </td> </tr>

entonces

$(document).on(''click'', ''.summary'', function () { var $tr=$(this).parents(''tr''); var profileSummary = {}; profileSummary[''name''] = $tr.find(''.name'').val(); profileSummary[''sex''] = $tr.find(''.sex'').val(); request = { ''option'' : ''com_ajax'', ''module'' : ''shelterbuddydog'', ''data'' : profileSummary, ''format'' : ''raw'' };

Alternativamente, también puede vincular información con el botón con el atributo de datos html5

<input class="summary" data-name="<?php echo $profile->name;?>" />

Estoy seguro de que esto es realmente simple, pero he tratado de conseguir esto durante años. Tengo un bucle foreach que itera sobre una matriz de objetos y los muestra en una tabla html con un botón de enviar que al hacer clic hace una llamada ajax para mostrar algunos datos en la misma página.

Todo esto funciona bien, excepto que solo pasa el valor del último objeto de la matriz en el bucle foreach en lugar del valor que se muestra en esa fila de la tabla. Intenté usar un contador o establecer e identificar para el pero no estoy seguro de cómo obtener ese valor específico y pasarlo.

Esto es lo que está en mi código:

<?php // No direct access defined(''_JEXEC'') or die; ?> <div class="status shelterbuddydog" > <table class="profile_table"> <?php foreach ($animalDetails as $profile):?> <tr> <td><?php echo $profile->photo;?></td> <td><span class="profile">Name:<?php echo $profile->name;?></span><br/> <span class="profile">Sex: <?php echo $profile->sex;?></span></<br/> <span class="profile">Age: <?php echo $profile->age;?></span><br/> <span class="profile">Breed: <?php echo $profile->breed;?></span><br/> <span class="profile">Animal Id: <?php echo$profile->animalId;?></span><br/> <span class="profile">Location: <?php echo $profile->shelter;?></span><br/> <?php $profile->summary;?> <input type="submit" id="summary" name="summary" value="VIEW MY PROFILE"> </input></td> </tr> <?php endforeach; </table> <?php // Instantiate global document object $doc = JFactory::getDocument(); $js = <<<JS (function ($) { $(document).on(''click'', ''#summary'', function () { var profileSummary = {}; profileSummary[''photo''] = ''$profile->photo''; profileSummary[''name''] = "$profile->name"; profileSummary[''sex''] = "$profile->sex"; profileSummary[''age''] = "$profile->age"; profileSummary[''breed''] = "$profile->breed"; profileSummary[''shelter''] = "$profile->shelter"; profileSummary[''animalId''] = "$profile->animalId"; profileSummary[''summary''] = "$profile->summary"; request = { ''option'' : ''com_ajax'', ''module'' : ''shelterbuddydog'', ''data'' : profileSummary, ''format'' : ''raw'' }; $.ajax({ type : ''GET'', data : request, success: function (response) { $(''.status'').html(response); } }); return false; }); })(jQuery) JS; $doc->addScriptDeclaration($js); ?> </div>

Gracias por cualquier ayuda en esto.