javascript - 是否可以使用 Ajax 调用内部函数?
问题描述
对 PHP 来说是全新的,所以这对我来说是第一次。现在,我想尝试根据以前的下拉列表从 1-10 动态更新下拉列表。
第一个下拉列表是桌位选择,允许您选择桌 1-35,第二个下拉列表是从 1-10 的座位选择。我希望拥有它,以便 1-10 将根据桌子更新,说明谁已经预订了桌子上的座位。
我已经找到了一种正确填充列表的方法,但是当我尝试在第一次下拉更改时更新它时遇到了一些问题。
我研究了很多对不同 PHP 文件的 Ajax 调用,但是我的代码取决于 PHP 在 index.php 文件中的位置来填充下拉列表。我目前有一个函数,它在首次加载时填充列表,并且我对同一文件内的内部函数有一个小的 Ajax 调用。
这是大致可以完全工作的 PHP 代码(我遗漏了更多内容,因为它无关紧要)
<?php
function populateDropdown2(){
for ($i=1; $i<=10; $i++)
{
if ($row[1] == $_POST['TableNum'] && $row[2] == $i)
{
$result = $i . ' - ' . $row[0];
break;
}
}
?>
<option value="
<?php echo $result;?>
"
<?php if(strlen($result) > 2){echo "Disabled";}?>
>
<?php echo $result;?>
</option>
这是我在 Ajax 调用中的尝试:
$(document).ready(function(){
$('#Tabl').change(function(){
console.log("CLICKED");
$.ajax({
url: "index.php",
type: "post",
success: function(response){
populateDropDown2(response);
}
});
});
});
我已经阅读了很多关于 Ajax 的内容,但是是否可以调用存在于同一个文件中的函数,因为它存在于不同的代码块中?谢谢。
编辑:我正在调用的函数必须位于它现在在 PHP 文件中的位置,因为它就在表单的所有其他输入字段的下方
Edit2:我从 PHP 的 CSV 文件中获取我的值。
解决方案
PHP 和 JavaScript(你的 AJAX 函数)是完全独立的,你不能在 JavaScript 中直接调用 PHP:
- PHP:在 Web 服务器上运行并通过 HTTP 返回数据。
- JavaScript:在客户端的浏览器中本地运行。
您的 AJAX 调用必须调用特定的 PHP 代码,然后将数据返回到 JavaScript,然后您可以使用它来修改当前显示的 HTML。
如果您在 PHP 代码中创建 HTML,然后将其返回给您的 JavaScript 函数,您可以使用$.html()将其注入到您的 DOM 中。
最好您希望将感兴趣的数据返回为 JSON(请参阅json_encode()),然后使用它在 JavaScript 中相应地操作您的 DOM(请参阅JSON.parse())。
为了安全起见,请务必将您的 JSON 包装到一个对象而不是数组中,请参阅这篇关于漏洞的帖子。