Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我使用ajax向dom添加新元素,那么如何使用url查询字符串来执行相同的操作?_Javascript_Php_Ajax - Fatal编程技术网

Javascript 如果我使用ajax向dom添加新元素,那么如何使用url查询字符串来执行相同的操作?

Javascript 如果我使用ajax向dom添加新元素,那么如何使用url查询字符串来执行相同的操作?,javascript,php,ajax,Javascript,Php,Ajax,我有一个用php和javascript编写的项目,允许用户“crud”图像。我使用mvc模式,index.php作为控制器,它执行通过ajax提交的操作,并以json字符串返回相关数据 我试图通过在url中放置查询来创建可用的链接,但我不确定正确的方法。 在此之前,每个请求都是由ajaxpost发出的,因此ajax处理响应,包括创建新元素、更新布局等 如果我将?action=foo添加到url的末尾,那么当控制器为初始页面加载(javascript资源等)呈现所有内容时,我只会获得json字符串

我有一个用php和javascript编写的项目,允许用户“crud”图像。我使用mvc模式,index.php作为控制器,它执行通过ajax提交的操作,并以json字符串返回相关数据

我试图通过在url中放置查询来创建可用的链接,但我不确定正确的方法。 在此之前,每个请求都是由ajaxpost发出的,因此ajax处理响应,包括创建新元素、更新布局等

如果我将?action=foo添加到url的末尾,那么当控制器为初始页面加载(javascript资源等)呈现所有内容时,我只会获得json字符串,然后根据后续ajax请求返回json字符串。我还尝试将view/home.php包含在相关的操作代码中,但这只显示了隐藏在下面的json字符串的主页,这种方法在使用ajax时不起作用

由于主页仅在初始页面加载时呈现,因此将该操作置于url中会跳过主页,页面仅使用json字符串重新加载。我是否应该添加一个测试条件来检查查询是否不是由ajax发送的?如果我用json重新加载主页,我如何获得正确的js函数来处理json?或者我需要彻底反思我是如何构建代码的

switch ($action) {
        case "home":
    case NULL:
        include_once('view/home.php'); //this includes all relevant js resources on page load
        break;
    case "search":
//retrieve requested data from db then-
header('Content-Type: application/json');
            echo json_encode($foo);
            break;
}

在用户使用ajax发出请求后,通过javascript函数将新元素添加到dom中。我试图找出如何使用浏览器url中的查询字符串重复此功能。我错过了什么?

这不是一个微不足道的问题。您可以a)让php代码将所需的“搜索结果”呈现到html中(复制javascript),或者b)在加载空home.php后触发javascript执行搜索,或者c)用javascript完成整个过程(从url读取参数并调用搜索函数),感谢您的评论。我喜欢建议c),我搜索了如何防止在url更改时重新加载页面,但没有找到我要找的内容。我尝试在窗口位置更改时添加侦听器,然后阻止默认设置,但显然不起作用。是否可以防止重新加载?我相信我可以找到一个解决方案,使用b),至于a)我不确定你是指从php发送js内联(从未完成b4),还是在php中创建html模板。页面将在url更改时重新加载(除了
#
哈希),所以你必须考虑到这一点。有一个硬链接意味着您希望它从头开始加载页面,否则就使用ajax。是的,选项A是用php构建html并将其插入页面中的正确位置(这样您就可以在某个地方使用javascript代码对ajax内容执行完全相同的操作)。这不是一个简单的问题。您可以a)让php代码将所需的“搜索结果”呈现到html中(复制javascript),或者b)在加载空home.php后触发javascript执行搜索,或者c)用javascript完成整个过程(从url读取参数并调用搜索函数),感谢您的评论。我喜欢建议c),我搜索了如何防止在url更改时重新加载页面,但没有找到我要找的内容。我尝试在窗口位置更改时添加侦听器,然后阻止默认设置,但显然不起作用。是否可以防止重新加载?我相信我可以找到一个解决方案,使用b),至于a)我不确定你是指从php发送js内联(从未完成b4),还是在php中创建html模板。页面将在url更改时重新加载(除了
#
哈希),所以你必须考虑到这一点。有一个硬链接意味着您希望它从头开始加载页面,否则就使用ajax。是的,选项A是用php构建html并将其插入页面中的正确位置(这样您就可以在某个地方使用javascript代码对ajax内容执行完全相同的操作)。