从表单调用php函数,并用结果完成表单

Posted

技术标签:

【中文标题】从表单调用php函数,并用结果完成表单【英文标题】:Call php function from form, and complete form with result 【发布时间】:2012-04-29 02:57:51 【问题描述】:

我正在为 Wordpress 编写一个插件,但如果您不熟悉 Wordpress,那也没关系。我有一个需要填写的表格,并且我有一个函数可以在 95% 的时间内返回表格中所需的所有字段。该函数需要一个唯一 ID,该函数将唯一 ID 放入 URL,获取一些 XML,解析 XML 并返回一些内容。我想用这些东西自动填充剩余的表单字段。

因此,我需要一个表单按钮来将唯一 ID 发送到我的函数,并且我需要了解我的函数如何将这些内容返回到其余字段......无论是否重新加载页面? 然后,用户将检查字段,根据需要手动添加其他数据,然后提交。

一个复杂的问题是xml来自的URL是外部的,因此不能被Jquery查询?正确与否? 非常感谢任何帮助。

【问题讨论】:

我现在已经解决了这个问题,将操作留空,所以它自己发布。然后我添加了一个 php 函数调用来整理函数位。并根据函数的结果更改表单字段的值。集成到 wordpress 中似乎是剩下的难点。 【参考方案1】:

如果您所说的“外部”是指跨域 Ajax 请求,这是可能的。请参阅jQuery.ajax() 功能和jsonp 设置。

【讨论】:

我相信只有在您请求数据的服务器配置为处理jsonp 请求时才会起作用。或者,有一些插件可以让您发出跨域 GET 请求,例如 github.com/padolsey/jQuery-Plugins/tree/master/… 我的意思是跨域。我可以用这个方法使用我当前的 php functoin 吗? @Andrewb 我不确定 deifwud 关于服务器设置的注释。奇怪的是,从站点获取数据需要启用特定设置。毕竟,您只是在读取文件的信息。也许有人可以确认这个问题。检查这个链接,它是关于jsonp的警告:ibm.com/developerworks/library/wa-aj-jsonp1 对不起,我解释得不是很好。我应该说的是,您请求数据的 URL 必须设置为处理 jsonp 请求 - 并且 jsonp 请求返回 json 格式的 object。如果您想了解更多关于jsonp 的信息,请查看fbloggs.com/2010/07/09/… - 迄今为止我遇到的最好的文章。另请查看 Skacc 的回答,里面有一些非常好的建议。【参考方案2】:

使用 AJAX,您可以 POST/GET 并通过返回来确定如何处理您的表单。

例如,我使用 jQuery 将数据转换为 JSON 格式并将其发送到外部服务器,该服务器以 JSON 字符串响应。仍然在 jQuery 中,我遍历数据并根据结果将错误抛出到特定的 id 等。

【讨论】:

【参考方案3】:

如果你可以使用 JSON,那么你可以使用 jQuery。

如果您必须使用 XML,那么您需要 YQL(Yahoo!查询语言)。这是一篇文章:http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

如果您有权访问提供 XML 的位置,那么您可以使用 crossdomain.xml 技术:http://code.google.com/p/crossxhr/wiki/CrossXhr

或者您可以对您自己的 php 页面之一执行常规 ajax,该 php 页面使用 curl(或类似的东西)获取 XML,然后返回结果。这样你就不需要做跨域请求了,但是时间会稍微长一点。

【讨论】:

以上是关于从表单调用php函数,并用结果完成表单的主要内容,如果未能解决你的问题,请参考以下文章

表单调用 2 个 php 函数

PHP中代理函数调用的小案例

从javascript函数创建的表单提交FormData到php

提交表单问题... Enter 键

PHP中的表单怎么自定义按钮事件?怎么在调用?

在表单发布完成对目标执行文件上传后,从 iframe 获取数据