Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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生成的表按钮onclick仅适用于第一个_Javascript_Php_Jquery_Html_Mysql - Fatal编程技术网

Javascript PHP生成的表按钮onclick仅适用于第一个

Javascript PHP生成的表按钮onclick仅适用于第一个,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我有一个由PHP生成的HTML表(来自SQL查询的结果): echo“CodiceTitoloAnno Creazione MaterialAltezzapesomuseo”; while($row=mysqli\u fetch\u assoc($results)){ 回声“$row[“Codice”]。$row[“Titolo”]。$row[“Anno_creazione”]。$row[“Materiale”]。$row[“Altezza”]。$row[“Peso”]。$row[“Museo”

我有一个由PHP生成的HTML表(来自SQL查询的结果):

echo“CodiceTitoloAnno Creazione MaterialAltezzapesomuseo”;
while($row=mysqli\u fetch\u assoc($results)){
回声“$row[“Codice”]。$row[“Titolo”]。$row[“Anno_creazione”]。$row[“Materiale”]。$row[“Altezza”]。$row[“Peso”]。$row[“Museo”]。“ModificaCancella”;
}
回声“;
然后,我有一个JQuery:

$("#cancella").click(function(){
    if(confirm("Vuoi davvero eliminare questi dati?")){
        var codice = <?php echo json_encode($cod); ?>;
        var tipo = <?php echo json_encode($tipo_opera); ?>; 
        window.location.href = "delete.php?codice="+codice+"&tipo="+tipo;
    }
 });
$(“#cancella”)。单击(函数(){
如果(确认(“Vuoi davvero eliminare questi dati?”){
变量codice=;
var tipo=;
window.location.href=“delete.php?codice=“+codice+”&tipo=“+tipo;
}
});

此单击功能仅适用于第一行的“删除”按钮。为什么?

id是唯一的,因此只能分配给一个
元素

使用

<button class=\"cancella\" type=\"button\">Cancella</button>

$(".cancella").click(function(){
 // Do Something.
});
取消 $(“.cancella”)。单击(函数(){ //做点什么。 });
备选方案:

<button type=\"button\" onclick=\"cancella()\">Cancella</button>

function cancella(){}
取消 函数cancella(){}
Cancella

需要是一个类而不是一个id

id应该是唯一的,如果这在DOM结构中重复,那么您将面临这个问题。如果需要,可以使用类cancela something,然后定义一些数据属性来标识特定的元素

所以你的代码是

在Html中

echo "<tr><td>".$row["Codice"]."</td><td>".$row["Titolo"]."</td><td>".$row["Anno_creazione"]."</td><td>".$row["Materiale"]."</td><td>".$row["Altezza"]."</td><td>".$row["Peso"]."</td><td>".$row["Museo"]."</td><td><button id=\"modifica\" type=\"button\">Modifica</button></td><td><button data-myid=".$row['id']." class='cancella' type=\"button\">Cancella</button></td></tr>";

另外,如果要动态添加“更多”元素,则应使用
$(document).on('click','.cancela',function(){})
而不是
$(“.cancella”)。单击()
,希望有帮助。

使用一个类,然后在单击事件中使用
这个
元素如果我使用一个类它不工作,Chrome控制台不会返回错误I checked。。很好。。确保所有内容都已加载,如jquery和脚本。。我正在写另一本书。。也试试看。
<button id=\"cancella\" type=\"button\">Cancella</button>
echo "<tr><td>".$row["Codice"]."</td><td>".$row["Titolo"]."</td><td>".$row["Anno_creazione"]."</td><td>".$row["Materiale"]."</td><td>".$row["Altezza"]."</td><td>".$row["Peso"]."</td><td>".$row["Museo"]."</td><td><button id=\"modifica\" type=\"button\">Modifica</button></td><td><button data-myid=".$row['id']." class='cancella' type=\"button\">Cancella</button></td></tr>";
$(".cancella").click(function(){
  if(confirm("Vuoi davvero eliminare questi dati?")){
    var particular_element = $(this).attr('data-myid');
  }
});