onclick操作无法按预期使用单选按钮

时间:2013-08-08 20:48:27

标签: php javascript onclick radio-button

在过去的4个小时里,我一直在努力争取一些工作。我检查了SO和其他来源,但找不到与该主题相关的任何内容。这是代码:

<?php   
$email=$_SESSION['email'];
$query1="SELECT * FROM oferte WHERE  email='$email'";
$rez2=mysql_query($query1) or die (mysql_error());
if (mysql_num_rows($rez2)>0)
{
while ($oferta = mysql_fetch_assoc($rez2))
{   
    $id=$oferta['id_oferta'];

    echo "<input type='radio' name='selectie' value='$id' id='$id'>&nbsp;<a href='oferta.php?id={$oferta['id_oferta']}'>{$oferta['denumire_locatie']}</a>";
    echo "</br>";
}

echo "</br>";


//echo "<input type=\"button\" id=\"cauta\" value=\"Vizualizeaza\" onclick=\"window.location.href='oferta.php?id={$oferta['id_oferta']}'\" />";
//echo "&nbsp;<input type=\"button\" id=\"cauta\"value=\"Modifica\" onclick=\"window.location.href='modifica.php?id={$oferta['id_oferta']}'\" />";
echo "&nbsp;<input type=\"button\" id=\"sterge\" value=\"Sterge\" onclick=\"window.location.href='delete.php?id=$id'\" />";
echo "</form>";     
echo "</div>";  
}
else
{

}
?>          

while从数据库中拖动所有用户的条目,并为每个用户创建一个单选按钮,其值和id(因为我真的不知道哪一个需要)等于db中条目的id 。我回应了这一点,并且显示了id,因为它应该没有问题。

删除脚本也正常,所以除非你告诉我,否则我不会附上它。一切都很好,没有错误,直到我尝试删除一个条目。无论我从条目列表中选择什么,它总是会删除最后一个。请注意,我有两个其他输入回显,这些将是条目的“视图”和“修改”按钮。

我真的希望这不是JavaScript相关的,因为我不知道JS。我认为这对于遇到这个问题的其他人来说会有很大的帮助。如果我需要在降级之前编辑我的问题,请告诉我。谢谢!

编辑后:

这是删除脚本,正如我之前所说的那样正常。

<?php

if (isset($_GET['id']))
{
    $id = $_GET['id'];
    echo $id;
    require_once('mysql_connect.php');

    $query = "DELETE FROM oferte Where id_oferta = '$id'";
    mysql_query($query) or die(mysql_error());

    //header('Location: oferte.php');

}
 else

{
//header('Location: oferte.php');
}


?>      

会话也会启动,如下所示:

<?php
session_start(); 
?>  

4 个答案:

答案 0 :(得分:1)

删除最后一个$id的原因是因为此行位于while循环之外/之后:

echo "&nbsp;<input type=\"button\" id=\"sterge\" value=\"Sterge\" onclick=\"window.location.href='delete.php?id=$id'\" />";

您希望在循环中移动此行,以便您有一个按钮,为每个单选按钮执行删除。

更新:

拥有删除和

的链接
echo "<input type='radio' name='selectie' value='$id' id='$id'>&nbsp;"; 
echo "<a href='oferta.php?id={$oferta['id_oferta']}'>{$oferta['denumire_locatie']}</a>&nbsp;";
echo "<a href='delete.php?id=$id'>delete</a>";

此外,我认为这里根本不需要单选按钮,因为你并没有真正做任何事情。您可以简单地回显您选择的值,并按如下方式链接:

echo $oferta['denumire_locatie'] . '&nbsp;'; // replace $oferta['denumire_locatie'] with something of your choice
echo "<a href='oferta.php?id={$oferta['id_oferta']}'>{$oferta['denumire_locatie']}</a>&nbsp;";
echo "<a href='delete.php?id=$id'>delete</a>";
echo "<br />";

答案 1 :(得分:0)

你的$ id在你的while()循环之外。 最后一个被删除,因为$ id在退出循环时具有最后一个值。

包含您的所有代码:

echo "</br>";


//echo "<input type=\"button\" id=\"cauta\" value=\"Vizualizeaza\" onclick=\"window.location.href='oferta.php?id={$oferta['id_oferta']}'\" />";
//echo "&nbsp;<input type=\"button\" id=\"cauta\"value=\"Modifica\" onclick=\"window.location.href='modifica.php?id={$oferta['id_oferta']}'\" />";
echo "&nbsp;<input type=\"button\" id=\"sterge\" value=\"Sterge\" onclick=\"window.location.href='delete.php?id=$id'\" />";

在你的while循环中。

答案 2 :(得分:0)

在这种情况下,问题与JavaScript有关,是的。我建议您只需为每个项目添加删除链接。

echo "<a href='oferta.php?id={$oferta['id_oferta']}'>{$oferta['denumire_locatie']}</a>";
echo " - <a href='delete.php?id={$oferta['id_oferta']}'>Remove</a>";
echo "</br>";

答案 3 :(得分:0)

当渲染的html到达浏览器时,它将是这样的:

<input type='radio' name='selectie' value='1' id='1'>&nbsp;<a href='oferta.php?id=1'>TEXT</a>
<input type='radio' name='selectie' value='2' id='2'>&nbsp;<a href='oferta.php?id=2'>TEXT</a>
<input type='radio' name='selectie' value='3' id='3'>&nbsp;<a href='oferta.php?id=3'>TEXT</a>
<input type='radio' name='selectie' value='4' id='4'>&nbsp;<a href='oferta.php?id=4'>TEXT</a>
<br/>
<input type="button" id="sterge" value="Sterge" onclick="window.location.href='delete.php?id=5'" />

使用此标记,无论何时选择单选按钮,都无法使用javascript更新onclick属性,无法完成所需的操作。

另一方面,您可以使用按钮的默认行为,即提交表单,而不是使用客户端 onclick 事件。

您只需设置操作属性:

<form method="post" action="http://myurl.php">

并编写myurl.php页面,该页面只读取已发布的变量$ _POST ['selectie']并使用发布的id调用delete方法。