Php 如何通过仅单击行中的一个值来显示该行中的所有值

Php 如何通过仅单击行中的一个值来显示该行中的所有值,php,html,gridview,view,Php,Html,Gridview,View,这种情况是,当我单击该行时,它将引导我进入“查看页面”,或者单击“更新按钮”将引导我进入“更新窗口”。现在我希望delete和update按钮与name和address值在一行中 我已经尝试对齐它,单击该行没有问题,它会将我指向“查看页面”,但每次我单击“更新按钮”,它都会弹出两个窗口,即“查看窗口”和“更新窗口”,其中应该只弹出“更新窗口” 那么我如何才能使更新页面不会影响查看页面呢 以下是我作品的链接图片: (这尚未对齐,因为我尝试时遇到了上述问题) 代码如下: <link href=

这种情况是,当我单击该行时,它将引导我进入“查看页面”,或者单击“更新按钮”将引导我进入“更新窗口”。现在我希望delete和update按钮与name和address值在一行中

我已经尝试对齐它,单击该行没有问题,它会将我指向“查看页面”,但每次我单击“更新按钮”,它都会弹出两个窗口,即“查看窗口”和“更新窗口”,其中应该只弹出“更新窗口”

那么我如何才能使更新页面不会影响查看页面呢

以下是我作品的链接图片:

(这尚未对齐,因为我尝试时遇到了上述问题)

代码如下:

<link href="main.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Principal Page</title>

<script type="text/javascript">

function pop_up(id) {
var newWind = window.open( "view_principal.php?id="+id, "myWindow", 
"status = 1, height = 200, width = 400, resizable = 0" );
}

function goModify(id)
{
window.location.href = "modify_principal.php?id=" + id;
}

function goDelete(id)
{
var answer = confirm ("Are you sure you want to delete?")

if (answer)
   window.location.href = "delete_principal.php?id=" + id;
}

function ChangeColor(tableRow, highLight)
{
if (highLight)
{
  tableRow.style.backgroundColor = '#66CCFF';
}
else
{
 tableRow.style.backgroundColor = '#69F';
}

 }

 function DoLink(theUrl)
{
document.location.href = theUrl;
}

</script>



</head>

<body>

<p>
<?php
require_once ('include/config.php');
require_once ('include/opendb.php');
$query = mysql_query("SELECT * FROM principal");
echo "</br>";
echo "<br>";
echo "<div class='divMainTable'>";
echo "<table border='1' >
  <tr class = 'headertable'>
    <th width = '200'> Name</th>
    <th> Address</th>
 </tr>";

while($row = mysql_fetch_array($query)){
echo "<tr onclick = 'pop_up($row[principal_ID])');return false;'      onmouseover='ChangeColor(this, true);' onmouseout='ChangeColor(this, false);'>";


echo "<td>".$row['name']."</td>";
echo "<td>".$row['address']."</td>"; 

echo "</tr>";
echo "</table>";
echo "</div>";

echo "<div class='divSecondTable'>";
echo "<table class='updatetable' border='1'>";
echo "<tr class='dataTable'>";
echo "<td align='center'>"."<input type='button' name='update' value='Update' 
onClick='goModify($row[principal_ID])');>"."</td>";

echo "<td align='center'>"."<input type='button' name='delete' value='Delete' 
onClick='goDelete($row[principal_ID])');>"."</td>";
echo "</tr>";
echo "</table>";
echo "</div>";

}



?>

<form id="form1" name="form1" method="post" action="add_principal.php">
<p class="add_option">
<input type="submit" name="add" id="button" value="ADD" />
</p>
</form>
</body>
</html>

主页
功能弹出窗口(id){
var newWind=window.open(“view_principal.php?id=“+id,”myWindow“,
“状态=1,高度=200,宽度=400,可调整大小=0”);
}
函数goModify(id)
{
window.location.href=“modify_principal.php?id=“+id;
}
函数godelite(id)
{
var answer=confirm(“您确定要删除吗?”)
若有(答复)
window.location.href=“delete_principal.php?id=“+id;
}
函数ChangeColor(表格行,高亮显示)
{
如果(突出显示)
{
tableRow.style.backgroundColor='#66CCFF';
}
其他的
{
tableRow.style.backgroundColor='#69F';
}
}
函数DoLink(theUrl)
{
document.location.href=URL;
}


两个窗口都会弹出的原因是事件冒泡。触发输入标记上的事件,然后触发tr标记上的事件

你需要停止传播

event.stopPropagation()
在你的功能中。如果在脚本中绑定事件而不是编写内联事件处理程序,那么这实际上更容易做到

更新:

在示例中,由于要传递参数,因此还需要传递事件对象

因此,内联事件需要将事件添加到参数中,其内容如下:

<input type="button" name="update" value="Update" onClick="goModify(event, $row[principal_ID]);">

您可以对delete按钮和js函数执行相同的操作。

您可以向我展示使用该功能的示例代码吗?我完全是个初学者。。谢谢
function goModify(event, id)
{
    event.stopPropagation();
    event.cancelBubble = true; // for ie
    window.location.href = "modify_principal.php?id=" + id;
}