-1

我使用以下代码:

   <form  method="get" name="MobileDetails">
 <input name="brand" id="brand" value="<?php echo $brand;?>" type="hidden">
<input name="brid" id="brid" value="<?php echo $brandid;?>" type="hidden">
 <button type="button" name="submitButton" value="get Details"    onclick="getDetails()">    
</form> 

脚本

 <script type="text/javascript">
function getDetails(){
var brand = document.getElementById('brand').value;
var brandid = document.getElementById('brid').value;
document.MobileDetails.action = 'details.php?brand='+brand+'&id='+brandid;
document.MobileDetails.submit();
}
</script>

但它在while循环中不起作用。有什么问题?我的代码如下。当我单击按钮时,它什么也不做。但是代码在顶部没有给出while循环的情况下工作得很好。

<?php
require_once('connection.php'); 
$SQL= "SELECT*FROM mobile ORDER BY price ASC  LIMIT 10";
$result= mysql_query($SQL);
while ($db_field = mysql_fetch_assoc($result)){
 $brand=$db_field['brand'];
 $id=$db_field['id'];
 $model=$db_field['model'];
 echo "<form  method='get' name='MobileDetails'>";
 echo " <input name='brand' id='brand' value='". $brand ."' type='hidden'>";
 echo" <input name='brid' id='brid' value='". $id ."' type='hidden'>";
 echo" <input name='mod' id='mod' value='". $model ."' type='hidden'>";
 echo" <button type='button' name='submitButton' value='get Details'   onclick='getDetails()'/>    
  </form>   ";
  echo "CLICK HERE";
    }

 ?>
4

3 回答 3

1

您多次使用相同的ID。ID 必须是唯一的。

于 2013-03-22T16:19:50.267 回答
1

你正在处理多个id。ID 的作用是成为元素的唯一标识符。我建议只使用

 <form action="details.php" type="get">

这将完全符合您在不使用该功能的情况下想要实现的目标。

于 2013-03-22T16:21:21.873 回答
0

元素 ID 的问题是它们对于页面来说必须是唯一的;但是,如您所见,显示 HTML 不是必需的。调用 JS 函数getDetails()时,它会按 ID 获取元素,但是当页面中有多个 ID 时,这将失败。

所以,你可以做什么?好吧,在您的循环中,您为每个“品牌”创建了一个新表单。您可以将表单的引用传递给NAMEgrabdetails ,然后从该表单中获取值。


您应该只在 PHP 级别生成操作,而不是使用 Javascript 根据放置在隐藏字段中的给定详细信息生成链接。

echo "<form  method='get' name='MobileDetails' action='details.php?brand=$brand&id=$brandid'>";

但是由于您确实有隐藏字段,因此仅action='details.php'使用表单将使用户

details.php?brand={brand}&brid={id}&mod={model}

您应该研究POST或将您的按钮变成一个普通的链接,而不是有一个表单。

于 2013-03-22T16:25:50.000 回答