在过去的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'> <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 " <input type=\"button\" id=\"cauta\"value=\"Modifica\" onclick=\"window.location.href='modifica.php?id={$oferta['id_oferta']}'\" />";
echo " <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();
?>
答案 0 :(得分:1)
删除最后一个$id
的原因是因为此行位于while循环之外/之后:
echo " <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'> ";
echo "<a href='oferta.php?id={$oferta['id_oferta']}'>{$oferta['denumire_locatie']}</a> ";
echo "<a href='delete.php?id=$id'>delete</a>";
此外,我认为这里根本不需要单选按钮,因为你并没有真正做任何事情。您可以简单地回显您选择的值,并按如下方式链接:
echo $oferta['denumire_locatie'] . ' '; // replace $oferta['denumire_locatie'] with something of your choice
echo "<a href='oferta.php?id={$oferta['id_oferta']}'>{$oferta['denumire_locatie']}</a> ";
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 " <input type=\"button\" id=\"cauta\"value=\"Modifica\" onclick=\"window.location.href='modifica.php?id={$oferta['id_oferta']}'\" />";
echo " <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'> <a href='oferta.php?id=1'>TEXT</a>
<input type='radio' name='selectie' value='2' id='2'> <a href='oferta.php?id=2'>TEXT</a>
<input type='radio' name='selectie' value='3' id='3'> <a href='oferta.php?id=3'>TEXT</a>
<input type='radio' name='selectie' value='4' id='4'> <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方法。