繁体   English   中英

PHP循环生成的按钮-仅最后一个有效吗?

PHP loop generated buttons - only last one works?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

第一次发布,PHP不是我最擅长的领域,所以这里...

下面的代码根据在数据库表中找到了多少个值生成了一个按钮列表,然后应该在单击按钮时触发第二段代码。 一切正常,除了第二段代码仅对最后生成的按钮有效。 有任何想法吗?

<?php
$username = $_SESSION['sess_user'];

$con=mysql_connect('localhost','root','root') or die(mysql_error());
mysql_select_db('user_registration') or die("cannot select DB");

$loop = mysql_query("SELECT * FROM `vaults` WHERE username = '$username' ORDER BY vaultname asc") or die ('Error Getting User Data! <br />' .mysql_error());
$chk = mysql_num_rows($loop);

$myvalue = '';
while ($row = mysql_fetch_assoc($loop)) {
$myvalue = "{$row['vaultname']}";
echo '<form method="post"><input class="text-center" type="submit" name=' . $myvalue . ' value=' .     $myvalue . ' id="vaultSelecter"></form>';
}
?>

<?php
if(isset($_POST[$myvalue])){
echo '<script type="text/javascript">window.onload = function() {     document.getElementById("instructions").innerHTML = " HELLO WORLD! "; }</script>';}
?>

谢谢大家的答复,我非常感谢。 我知道每个人都在说什么,但是我在getELementByID()中引用的ID是与按钮分开的DIV,当我单击任意一个按钮时,我想用ID“指令”更改单个DIV的内容,但它仅适用于循环创建的最后一个按钮。 那仍然是由于我的按钮ID已确定的方式吗?

例如,上面的循环创建了三个按钮,我希望每个按钮使用“ Hello Word”更改以下DIV的内容。

<div id=instructions>
 replace this text
</div>

我猜我必须将循环创建的每个$ myvalues存储到数组中,以便可以将每个值分别分配给每个按钮,我只是不知道该怎么做。

3 个回复

您正在此行中复制ID:

echo '<form method="post"><input class="text-center" type="submit" name=' . $myvalue . ' value=' .     $myvalue . ' id="vaultSelecter"></form>';

并且ID必须是唯一的。 尝试类。 例如:

var elems = document.getElementsByClassName("text-center");
for (var i = 0; i < elems.length; i++) {
    console.log('x')
    elems[i].addEventListener('click', function () {
        alert('hello');
    }, false);
}

您要将多个输入分配给相同的id ,而是将它们分配给一个class因为id必须是唯一的。

您还正在为每个按钮创建一个表单,这对我来说似乎毫无意义,请尝试以下操作:

echo '<form method="post">';
while ($row = mysql_fetch_assoc($loop)) {
    $myvalue = "{$row['vaultname']}";
    echo '<input class="text-center vaultSelecter" type="submit" name=' . $myvalue . ' value=' .     $myvalue . '>';
}
echo '</form>';

名为vaultSelector的ID现在是一个类,因此可以通过getElementByClassName()进行访问

代替这个:

name=' . $myvalue . ' value=' .     $myvalue . ' id="vaultSelecter"

也许尝试

name="' . $myvalue . '" value=' .     $myvalue . ' id="' . $myvalue . '"

在我看来,最好唯一地标识将用作编程元素的任何元素。

只是另一条未经请求的意见。 如果您可以将所有内容组合成一种形式,则可能会使事情变得更容易。 因此,当按钮提交时,设置一个隐藏字段并继续提交表单。

1 使用php循环生成按钮

我目前在网络应用程序上进行编程以捕获联系人数据。 它可以显示来自mysql数据库的表(请参见SELECT语句)。 现在,我想动态生成用于从数据库中删除特定行的按钮。 它可以显示按钮,但是它们不起作用。 我将变量$ id命名为不同的按钮“ rowButton1”,“ rowButt ...

4 PHP从循环生成Array()?

我刚写了这个,这是将数组添加到预先存在的数组的最有效方法。 更新:如何在不创建新阵列的情况下推送键和值。 所以这个array_push($myarray,'key' =&gt; 'value'); 不是这个array_push($myarray, array('key' =&gt ...

5 PHP计数从循环生成的结果

我有这个for循环,会产生10个结果: 它产生如下结果: 我的问题是如何计算代数? 对于上面的示例,它将是: 我基本上想统计产生的特定结果的数量。 对不起,如果我没有太大意义。 ...

6 PHP通过循环生成“ ItemCode”

我的问题是下一个该系统可以正常运行,但是我有问题。 $randarray[$i]在loop1时只给出一个数字,这是因为$itemhex可以是8,16,24,32个字符长,但它总是被拆分,所以输出是: 行的数量是可取的,但是其中的“随机”数是相同的,我该如何解决它具有不同的随机数呢? ...

2016-06-16 22:08:44 0 27   php
7 如何从函数内的foreach循环生成的最后一项中删除最后一个逗号

我已经看到了一些类似的问题-答案,但是到目前为止,我还没有做到这一点。 有人建议您使用逗号使数组内爆,但我不知道在特定情况下是否实施内爆(即使可能)。 我试图遵循最简单的方法,只是删除了回显的h​​tml的第12个字符(即逗号),但是我无法将函数本身存储到变量中。 我将不胜感激,谢谢! ...

8 如何有效地连接由for循环生成的数千个pandas数据帧?

在读取不同文件的 for 循环中生成了数千个 dfs 一致的列,我正在尝试将它们合并/连接/附加到单个 df 中, combined : 这最初很快,但随着combined增长而变慢,最终变得非常缓慢。 这个关于如何追加行的答案解释了如何向 dict 添加行然后创建 df 是最有效的,但我无法弄 ...

10 使用while循环生成多个按钮

我正在使用 php 中的 while 循环生成多个切换按钮,以在我的网站中隐藏和显示内容。 我如何确保单击其中之一不会打开所有。 我如何确保每个人都是独一无二的 我尝试循环按钮并给它们增加 Id 和 names ,但是我似乎无法弄清楚如何使用它来唯一地调用每个按钮。 所以这段代码允许我创建多个隐 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM