Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从重复循环中的php表单获取变量_Javascript_Php_Jquery - Fatal编程技术网

Javascript 从重复循环中的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

我在while循环中使用了不同id的php表单

<?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();
 }