2010-08-31 127 views
1

我有包括的项目列表的PHP生成的表单,每个旁边有一个按钮,说:“删除该”它输出类似于下面:检查哪个按钮被点击

Item A - [Remove This] 
Item B - [Remove This] 
... 

我想能够单击Remove This,它将检测它是哪个项目,然后将其从数据库中删除。这里是我到目前为止的代码:

selectPlaces.php再加上我的admin.php的

<?php 
include 'data.php'; 

mysql_connect($host, $user, $pass) or die ("Wrong Information"); 

mysql_select_db($db) or die("Wrong Database"); 

$result = mysql_query("SELECT * FROM reseller_addresses") or die ("Broken Query"); 
while($row = mysql_fetch_array($result)){ 
    $placeName = stripslashes($row['b_name']); 
    $placeCode = stripslashes($row['b_code']); 
    $placeTown = stripslashes($row['b_town']); 
    $outputPlaces .= "<strong>$letter:</strong> $placeName, $placeTown, $placeCode <input type=\"button\" onclick=\"removePlace()\" value=\"Remove This\" /><br />"; 
} 

mysql_close(); 
?> 

 <div id="content" style="display:none"> 
     Remove a Place<br><br> 
     <?php include 'selectPlaces.php'; echo $outputPlaces; ?> 
     </div> 

我知道我需要添加一些JavaScript来检测被点击的按钮,但我可以似乎没有得到它的工作。我试着通过在函数removePlace(placeID)或类似的东西中传递一个变量来修改onclick =“removePlace()”,但我是JavaScript新手,我不知道如何在removePlace函数中接收这个。

+0

你对“地点”有什么类型的数据(例如:selectPlaces.php中发生了什么)? – 2010-08-31 10:33:21

+0

它基本上只是从数据库中获取文本地名并将其输出到表单中。这实际上只是文本信息 – 2010-08-31 10:40:07

回答

3

没有JavaScript,这似乎更容易做到。对于每个条目,而不是只生成一个按钮,生成一个表单发布到一个PHP脚本,删除。

<form action="deletePlace.php?id=<?php echo $idOfThePlace?>"> 
<input type="submit" value="Remove This" /> 
</form> 

$idOfThePlace将是您用来识别数据行的ID。

3

你不需要JavaScript就可以了。试着运行这个例子:

<?php var_dump($_POST); ?> 
<form action="post.php" method="post"> 
    <p> 
     <input type="submit" value="a" name="action" /> 
     <input type="submit" value="b" name="action" /> 
    </p> 
</form> 

你会看到$_POST['action']将取决于按下按钮。对于您的示例,您只需设置该值以标识需要删除的项目。使用<button>元素可能是有用的:<button name="delete" type="submit" value="12345">delete item 12345</button>。提交时,它会显示为$_POST['delete'],其值为12345。

+1

小心:IE6不正确支持'

+0

感谢您的通知。 – slikts 2010-08-31 10:55:16

+0

噢,我只记得,IE6还将'button'的内容作为值而不是value属性。 – RoToRa 2010-08-31 10:57:31