需要Javascript来定位PHP循环的各个div

时间:2014-05-10 20:28:31

标签: javascript php ajax loops tags

我设法创建了一个PHP循环,它接受一个数组并创建同一个按钮的多个副本,而每个按钮都有自己的标识(" adiv_1"," adiv_2",& #34; adiv_3"等)。我有一个javascript函数,可以在它被调用之前只需一个按钮' adiv'"如果单击按钮,则更改按钮的文本。

然而,由于PHP循环命名为" adiv_1或adiv_2或adiv_3",我不知道如何创建一个javascript函数,可以将其中一个按钮循环使用不同的标识如果单击该组中的某个按钮,则使用div标记并获取javascript来标识每个标记。有人可以帮忙吗?

创建按钮组的PHP循环

<?php

$array_query = mysql_query("SELECT * FROM person_finder_info");

$i = 0;

while($search_row = mysql_fetch_array($array_query)){
?>
    <p><button type="button" onclick='load()'><div id='adiv_<?php echo $i?>'>Add this person</div></button></p>
<?php
$i++;
}
?>

更改按钮文本的Javascipt / AJAX函数(通过在PHP文件中获取回显信息)

//Changes button text to "You added him!"
function load(){                                    
    if (window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    } else{
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById("adiv_1").innerHTML =      xmlhttp.responseText;
        }

    }

xmlhttp.open('GET','include.inc.php', true);
xmlhttp.send();

1 个答案:

答案 0 :(得分:0)

这是初步的,但我认为你正在尝试做这样的事情,只需在onreadystatechange函数中循环就像你在另一个函数中所做的那样,在那里显示你想要处理所有按钮的内容。 :

<?php
for($i = 0; $i < count($array); $i++) 
{
?>
    <p><button type="button" onclick='load()'><div id='adiv_<?php echo $i;?>'>Add this person</div></button></p>
<?php
}
?>

<script>
//Changes button text to "You added him!"
function load(){                                    
    if (window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    } else{
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
    <?php
    echo "var divArray = {";
    for($i = 0; $i < count($array); $i++) 
    {
       echo "'adiv_".$i."'".($i < $count-1 ? "," : "");
    }
    echo "};" /// after the loop this will output like var divArray = {'adiv_1','adiv_2', ... };
    ?> 

    for (var i = 0; i < divArray.length; i++) {                         
        document.getElementById(divArray[i]).innerHtml(dataFromResponse[i]); // assuming you've processed the response from AJAX into an array

    }
  }
}

xmlhttp.open('GET','include.inc.php', true);
xmlhttp.send();
</script>

我无法帮助您设置所有按钮innerHTML,因为我不知道您从AJAX获得了什么样的响应。这只是为了引导您朝着正确的方向前进。