Javascript 如果我使用ajax向dom添加新元素,那么如何使用url查询字符串来执行相同的操作?
我有一个用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?或者我需要彻底反思我是如何构建代码的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字符串
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内容执行完全相同的操作)。