1

我在 PHP 中有 2 个函数,其中一个显示 ISBN 和书名,另一个显示基于先前选择中选择的 ISBN 的数据库中存在的版本。

这是2个功能:

ISBN - 图书下拉列表:

    <?php include ("includes/connections.php");
function dropdown($intIdField, $strNameField, $strTableName, $strOrderField, $strNameOrdinal, $strMethod="asc") {
   echo "<select name=\"$strNameOrdinal\" onchange=\"selection($id)\">\n";
   echo "<option value=\"NULL\">Select Value</option>\n";



   $strQuery = "select $intIdField, $strNameField
               from $strTableName
               order by $strOrderField $strMethod";

   $rsrcResult = mysql_query($strQuery);

   while($arrayRow = mysql_fetch_assoc($rsrcResult)) {
      $strA = $arrayRow["$intIdField"];
      $strB = $arrayRow["$intIdField"] . " - " . $arrayRow["$strNameField"];
      echo "<option value=\"$strA\">$strB</option>\n";
   }

   echo "</select>";
}
?>

版本下拉列表:

<?php include ("includes/connections.php");
function dropdownEdition($intId1Field, $intId2Field, $strTableName, $strOrderField, $strNameOrdinal, $strMethod="asc") {

    $intId2Field = $GLOBALS['book'];
   var_dump($intId2Field);
   var_dump($_POST["book"]);

   echo "<select name=\"$strNameOrdinal\">\n";
   echo "<option value=\"NULL\">Select Value</option>\n";



   $strQuery = "SELECT $intId1Field, $intId2Field
               FROM $strTableName
               ORDER BY $strOrderField $strMethod";

   $rsrcResult = mysql_query($strQuery);

   while($arrayRow = mysql_fetch_assoc($rsrcResult)) {
      $strA = $arrayRow["$intId1Field"];
      echo "<option value=\"$strA\">$strA</option>\n";
   }

   echo "</select>";
   }

?>

我一直在尝试做的是通过一个函数传递在先前选择中选择onchange的 ISBN,该函数将返回该书的 ISBN,但它失败了很多。

<?php

    function selection($id){
            echo $id;
        }

?>

我知道我在这方面很糟糕,但我不知道还能做什么,如果你能给我指出一个方向,那将不胜感激。

如果可能的话,我更喜欢 PHP 解决方案而不是 JavaScript 解决方案。

4

1 回答 1

2

您正试图通过 onchange 事件调用 PHP 函数。

您需要编写一个 JavaScript 函数来对 PHP 文件进行 AJAX 调用以获得结果。


您可以使用jQuery轻松地发出 AJAX 请求

$.get({
  url: "/selection.php",
  data: {
    id: "ISBN HERE"
  },
  success: function(data) {
    alert(data)
  }
})

您还必须在 PHP 文件中添加类似的内容以显示结果

echo selection($_GET["id"]);

第一页,其中包含书籍列表和一个Go按钮

<form action="page2.php" method="get">
   <!-- book selection list -->
   <input type="submit" value="Go">
</form>

第二页可以列出带有 ID 的图书的所有版本$_GET[$strNameOrdinal]


要在同一页面上执行此操作,并重新加载,您需要检查表单是否已提交

<?php

  if (empty($_GET[$strNameOrdinal])) {
    // List Books
  } else {
    // List editions
  }

?>
于 2012-06-08T18:07:57.040 回答