我在PHP中有两个函数,其中一个显示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解决方案。
答案 0 :(得分: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
}
?>