Javascript 从重复循环中的php表单获取变量
我在while循环中使用了不同id的php表单Javascript 从重复循环中的php表单获取变量,javascript,php,jquery,Javascript,Php,Jquery,我在while循环中使用了不同id的php表单 <?php while($pet = $results->fetch(PDO::FETCH_ASSOC)){ ?> <form method="post" name="petForm" id="petForm"> <ul id="listAvatars"> <li> <input ty
<?php
while($pet = $results->fetch(PDO::FETCH_ASSOC)){
?>
<form method="post" name="petForm" id="petForm">
<ul id="listAvatars">
<li>
<input type='text' name='pet' id='pet' value='<?=$pet['PetId']?>' />
<img src="<?=PET_AVATAR.$pet['Avatar']?>" class="listAvatar">
<span onclick='setPet(<?=$pet['PetId']?>)' id="avatarName"><?=$pet['PetName']?></span>
</li>
</ul>
</form>
<?php
}
?>
PHP:
通过提交此表单,我只获得了第一个宠物的id。我应该如何在select上获得合适的宠物id?您的循环将环绕在单独的
表单
字段上。当您单击提交时,它只会提交相应的表单,而不会提交其他表单
您可能要做的是将表单
字段移到循环之外,以便传递所有petid。不过,您需要将名称更新为类似于pet[]
的名称,以便PHP知道它是一个小ID的数组
见:
编辑
看来真正的问题是:
当我单击一个petId时,如何通过
表单(不使用AJAX)
HTML
请参阅:您需要将
移动到while循环之外
<form method="post" name="petForm" id="petForm">
<input type='hidden' name='pet' id='pet' value='' />
<ul id="listAvatars">
<?php
while($pet = $results->fetch(PDO::FETCH_ASSOC)){
?>
<li>
<img src="<?=PET_AVATAR.$pet['Avatar']?>" class="listAvatar">
<span onclick='setPet(<?=$pet['PetId']?>)' id="avatarName"><?=$pet['PetName']?></span>
</li>
<?php
}
?>
</ul>
</form>
如何为每个变量获取合适的值?我尝试将其设置为数组。我得到了所有的宠物身份证。但是,我如何在php中确定选择了哪一个呢?所以您希望接收所有的PetID,但只关心一个?为什么不发那个?这就是我要做的。我有所有宠物的清单。我只想发送一个我将选择的。所以,一旦点击,我需要将特定的宠物id发送到php。啊,当你点击一个特定的宠物时,你希望它向你的php发出(AJAX?)一个请求?在警报(petId)中,我得到不同的宠物id。但是,在表单提交中,我只得到最后一个元素。
if(isset($_POST['pet'])){
$petId = $_POST['pet'];
print_r($petId);
}
<div id="pet-id-1" class="petid">Pet 1</div>
<div id="pet-id-2" class="petid">Pet 2</div>
<div id="pet-id-3" class="petid">Pet 3</div>
<form action="" method="post" id="pet_form">
<input type="hidden" name="pet_id" id="pet_id" value="" />
</form>
$(document).ready(function() {
$('.petid').click(function() {
var pet_id = $(this).attr('id');
$("#pet_id").val(pet_id);
$("#pet_form").submit();
});
});
<form method="post" name="petForm" id="petForm">
<input type='hidden' name='pet' id='pet' value='' />
<ul id="listAvatars">
<?php
while($pet = $results->fetch(PDO::FETCH_ASSOC)){
?>
<li>
<img src="<?=PET_AVATAR.$pet['Avatar']?>" class="listAvatar">
<span onclick='setPet(<?=$pet['PetId']?>)' id="avatarName"><?=$pet['PetName']?></span>
</li>
<?php
}
?>
</ul>
</form>
function setPet(petId){
alert(petId);
document.getElementById("pet").value=petId;
document.getElementById("petForm").submit();
}