gpt4 book ai didi

php - Ajax 在非常奇怪的情况下拒绝发送数据

转载 作者:行者123 更新时间:2023-11-30 18:35:42 25 4
gpt4 key购买 nike

我有一个表单,我需要将通过 AJAX 选择的数据发送到该表单。整个想法是,一旦选择了表单数据,就会通过 jQuery.get() 发送一个 ajax 调用。调用另一个函数,该函数接收和解码 PHP 中的数据,并将该数据用作 id 从数据库中获取更多数据。来自数据库的数据然后被重新编码并发送到 javascript 函数,该函数根据传递的内容打印更多数据。

我的问题是,任何时候我引用 $_GET$_POST使用 <?php ?> javascript 函数中的标记,我收到一条错误消息,告诉我我的 javascript 函数未定义。我知道这至少部分有效,因为当我删除 $_GET/$_POST 时确实发送了 AJAX 调用超全局的。

如有任何帮助,我们将不胜感激。

这是我的代码:

jQuery.noConflict();        

function printSubCategories(categories) {

for (var i = 0; i < categories.length; i++) {

var opt = document.createElement('option');

opt.text = categories[i]['name'];
opt.value = categories[i]['id'];

jQuery('#subcategories').append(opt);
}
}

function recieveAndPrint() {
<?php
$categories = getCategories(json_decode($_GET['parent']));
?>
printSubCategories(<?=json_encode($categories)?>);
}

function ajaxCategories(pathToFile, ajaxData) {
jQuery.get(pathToFile, {'parent' : ajaxData}, function(ajaxData) {
//alert('Data loaded: ' + ajaxData + <?=json_encode($_POST)?>);
});

recieveAndPrint();

}

最佳答案

我怀疑您对 AJAX 的工作原理感到困惑。看起来您希望 AJAX 调用能够以页面仅加载一次的方式与位于同一页面上的 PHP 一起工作。那不准确;您需要的是在服务器上调用的另一个 php 页面,该页面将数据作为 JSON 返回到原始页面。您的回调也有问题,因为在调用 receiveAndPrint() 之前数据还没有准备好;它需要在回调中被调用(但它只会在那个时候被打印,因为接收部分已经完成)。

假设您有两个 PHP 文件,a.php 和 b.php。第一个将用于显示初始页面,并将调用第二个以检索特定 parent 实例的新数据。

a.php

jQuery.noConflict();        

function printSubCategories(categories) {

for (var i = 0; i < categories.length; i++) {

var opt = document.createElement('option');

opt.text = categories[i]['name'];
opt.value = categories[i]['id'];

jQuery('#subcategories').append(opt);
}
}


function ajaxCategories(pathToFile, ajaxData) {
jQuery.get(pathToFile, {'parent' : ajaxData}, function(data) {
printSubCategories(data);
});
}

称为

ajaxCategories('/b.php','value_of_parent');

b.php

<?php
$categories = getCategories(json_decode($_GET['parent']));
header('Content-type: application/json');
?>
<?=json_encode($categories)?>

您可能还想确保响应未被缓存。

header('Cache-Control: no-store');

关于php - Ajax 在非常奇怪的情况下拒绝发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com