【发布时间】:2010-06-01 09:25:19
【问题描述】:
我正面临一个我自己无法解决的小问题。
我有这个php函数:
function intervalo_manha(){
$que="select id_intervalo,data_15
from intervalo_manha
order by id_intervalo";
$re=mysql_query($que);
$object.="<select>";
$object.="<option></option>";
while(list($id_intervalo, $data_15)=mysql_fetch_row($re))
{
$object.= "<option value=\"".$id_intervalo."\">".$data_15."</option>";
}
$object.="</select>";
return $object;
}
这个函数返回一个带有数据库信息的选择。
我也有这个js函数:
$(document).ready(function() {
var destTable = $("#dataTable");
$("#btnAdd").click(function() {
var newRow = $("<tr style='margin-left:-60px'><td><INPUT type='checkbox' name='chk'/></td><td><INPUT type='text' name='txt[]' id='txt'/></td><td></td></tr>");
$("#dataTable").append(newRow);
newRow.find('input').autocomplete("get_cols_name.php", {
width: 260,
matchContains: true,
selectFirst: false
});
});
});
这会在我的表中添加一个新行,并且对于每个新输入都将“激活”自动完成功能。我想要做的是,而不是这个:
var newRow = $("<tr style='margin-left:-60px'><td><INPUT type='checkbox' name='chk'/></td><td><INPUT type='text' name='txt[]' id='txt'/></td><td></td></tr>");
我想要这样的东西:
var newRow = $("<tr style='margin-left:-60px'><td><INPUT type='checkbox' name='chk'/></td><td><INPUT type='text' name='txt[]' id='txt'/></td><td><?php echo intervalo_manha(); ?></td></tr>");
直接调用php函数什么都不会返回,我什么也做不了。有没有办法做到这一点?
谢谢
【问题讨论】:
-
所有代码都在一个php文件中吗?
-
是的,它们在同一个页面中。我基本上想在 jQuery 中声明的变量中输出我的 php 函数。我不知道这是否可能,但是按照我在帖子中所说的方式,我不能做我想做的事。
-
你必须小心你的措辞。你不能从 JS 调用 PHP 函数,但我认为这不是你想要做的(但你的标题暗示了它)。您所做的是,您通过 PHP 创建 HTML 页面,并在此过程中调用 PHP 函数,该函数生成一些 HTML,并将其结果注入到最终的 HTML 页面中。
-
在您的函数中,您没有连接到数据库。您是否连接到脚本中某处的数据库?如果不是,您应该收到警告。您是否收到任何错误消息?
-
您好,Felix,实际上我想要的是在 js 函数中调用 PHP 函数。我已经搜索过了,这似乎是不可能的,就像你提到的那样。我想要什么,当使用我的 js 函数添加新行时,它将添加一个输入和一个从数据库获取值的选择。这个select是php函数的输出。是的,Felix,我有一个连接字符串。我发布主题的方式,在第 1 篇文章中,我可以毫无问题地添加新行和用户自动完成。问题是将选择下拉列表(使用 DB 值)添加到动态创建的 html。