Php 在循环数据内选择选项时显示div

Php 在循环数据内选择选项时显示div,php,jquery,html,mysql,ajax,Php,Jquery,Html,Mysql,Ajax,我有php代码: <?php $produk = mysql_query("SELECT * FROM produk ORDER BY id_produk DESC"); while($p=mysql_fetch_array($produk)){ <select name='urutan' onChange='yesnoCheck(this);'> <option value='yes' selected>Yes</option>

我有php代码:

<?php
$produk = mysql_query("SELECT * FROM produk ORDER BY id_produk DESC");
while($p=mysql_fetch_array($produk)){
    <select name='urutan'  onChange='yesnoCheck(this);'>
        <option value='yes' selected>Yes</option>
        <option value='no'>No</option>
    </select>
    <div id='ifY' style='display: none;'>
        <input type=submit value=submit class=ui-btn-primary>
    </div>
    <div id='ifN' style='display: none;'>
        <input type=submit value=submit class=ui-btn-primary>
    </div>
}

我想像这样的东西会有帮助的。此外,id应该始终是唯一的使用类

PHP代码和html

<?php
$produk = mysql_query("SELECT * FROM produk ORDER BY id_produk DESC");
while($p=mysql_fetch_array($produk)){ ?>

    <div> // new div added here.
        <select name='urutan'  onChange='yesnoCheck(this);'>
            <option value='yes' selected data-selector="ifY">Yes</option> //  added new data-selector attribute.
            <option value='no' data-selector="ifN">No</option> 
        </select>
        <div class='ifY commonclass' style='display: none;'> // changed id to class and added a commonclass to get all divs.
            <input type=submit value=submit class=ui-btn-primary>
        </div>
        <div class='ifN commonclass' style='display: none;'>
            <input type=submit value=submit class=ui-btn-primary>
        </div>
    </div>
<?php } ?>

试试这个,这个应该有用

<?php
$produk = mysql_query("SELECT * FROM produk ORDER BY id_produk DESC");
$i = 0;
while($p=mysql_fetch_array($produk)){ ?>
<select name='urutan'  onChange='yesnoCheck(this,<?= $i ?>);' rel="<?= $i ?>">
    <option value='yes' selected>Yes</option>
    <option value='no'>No</option>
</select>
<div id="ifY<?= $i ?>" style='display: none;'>
    <input type=submit value=submit class=ui-btn-primary>
</div>
<div id="ifN<?= $i ?>" style='display: none;'>
    <input type=submit value=submit class=ui-btn-primary>
</div>

<br>
<?php $i++; } ?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
function yesnoCheck(that,i) {
if (that.value == "yes") {
    $("#ifY" + i).css("display","block")
    $("#ifN" + i).css("display","none")
} else if (that.value == "no"){
    $("#ifY" + i).css("display","none")
    $("#ifN" + i).css("display","block")
}

}


为div使用动态ID和名称,并使用计数器变量选择元素

PHP代码

<?php
$produk = mysql_query("SELECT * FROM manufacturer ORDER BY id DESC limit 5");
$i = 1;
while($p=mysql_fetch_array($produk))
{
    ?>
    <select name='urutan<?php echo $i?>' id="urutan<?php echo $i?>" onChange='yesnoCheck("<?php echo $i?>");'>
        <option value='yes' selected>Yes</option>
        <option value='no'>No</option>
    </select>
    <div id='ifY<?php echo $i?>' style='display: none;'>
        <input type=submit value=submit class=ui-btn-primary>
    </div>
    <div id='ifN<?php echo $i?>' style='display: none;'>
        <input type=submit value=submit class=ui-btn-primary>
    </div>
    <?php
    $i++;
}
?>


您正在为每个获取的$produk创建两个div,这样您就不能使用id='ifY'和id='ifN',因为会有重复的id。我明白了,那么我该怎么办?在为div分配id时,仍然混淆了php文件中的一些数字,并在YesCheck(this,$i)中添加了额外的参数,比如这样,以及在访问document.getElementById(“ifN”+number)时.style.display=“无”;所以每个div都有独特的id@WisdmLabs答案是一个很好的选择。您在控制台中遇到了什么错误?总是对你所犯的错误做出回应,这样别人就很容易帮助你。
<?php
$produk = mysql_query("SELECT * FROM produk ORDER BY id_produk DESC");
$i = 0;
while($p=mysql_fetch_array($produk)){ ?>
<select name='urutan'  onChange='yesnoCheck(this,<?= $i ?>);' rel="<?= $i ?>">
    <option value='yes' selected>Yes</option>
    <option value='no'>No</option>
</select>
<div id="ifY<?= $i ?>" style='display: none;'>
    <input type=submit value=submit class=ui-btn-primary>
</div>
<div id="ifN<?= $i ?>" style='display: none;'>
    <input type=submit value=submit class=ui-btn-primary>
</div>

<br>
<?php $i++; } ?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
function yesnoCheck(that,i) {
if (that.value == "yes") {
    $("#ifY" + i).css("display","block")
    $("#ifN" + i).css("display","none")
} else if (that.value == "no"){
    $("#ifY" + i).css("display","none")
    $("#ifN" + i).css("display","block")
}

}
<?php
$produk = mysql_query("SELECT * FROM manufacturer ORDER BY id DESC limit 5");
$i = 1;
while($p=mysql_fetch_array($produk))
{
    ?>
    <select name='urutan<?php echo $i?>' id="urutan<?php echo $i?>" onChange='yesnoCheck("<?php echo $i?>");'>
        <option value='yes' selected>Yes</option>
        <option value='no'>No</option>
    </select>
    <div id='ifY<?php echo $i?>' style='display: none;'>
        <input type=submit value=submit class=ui-btn-primary>
    </div>
    <div id='ifN<?php echo $i?>' style='display: none;'>
        <input type=submit value=submit class=ui-btn-primary>
    </div>
    <?php
    $i++;
}
?>
 <script>
 function yesnoCheck(id) 
  {

    var that = document.getElementById("urutan"+id);
    /*if (that.value == "other") {
        document.getElementById("ifNon"+id).style.display = "block";
    } else {
        document.getElementById("ifNon"+id).style.display = "none";
    }*/

    if (that.value == "yes") {
        document.getElementById("ifY"+id).style.display = "block";
    } else {
        document.getElementById("ifY"+id).style.display = "none";
    }

    if (that.value == "no") {
        document.getElementById("ifN"+id).style.display = "block";
    } else {
        document.getElementById("ifN"+id).style.display = "none";
    }

}
</script>