0

在过去的 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(因为我真的不知道需要哪个)等于数据库中条目的 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

4 回答 4

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 />";
于 2013-08-08T20:54:45.267 回答
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 循环内。

于 2013-08-08T20:57:46.703 回答
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>";
于 2013-08-08T20:59:16.667 回答
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事件。

您只需要设置 action 属性:

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

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

于 2013-08-08T21:42:32.457 回答