form表单提交到后台PHP进行处理,处理完后需要调用前天js的一个方法展示一个弹出层,但是提示错误找不到这个js方法,调用方法是 直接echo 一段js代码。
回复讨论(解决方案)
应该是要在后台PHP页面中引入这个js方法。
而且貌似HTML点击提交表单的时候都是已经离开了本页面。
除非做一个Ajax方法,不要form了。直接Ajax提交。
点击按钮触发Ajax。这样原HTML不会刷新。
触发弹出层可以写在Ajax的onreadystatechange里
先引入js文件
php的要先执行,再输送到客户端,肯定找不到你的js方法
用ajax提交
贴出代码以供分析,错误提示也一并贴出。
在你echo 这个js方法前把你写的js引入
这个“js的一个方法”只在表单页中还是在表单目标页中?
你这需求.令人费解!!!
要么是这段js代码没有加载,要么是这段代码定义在局部环境中。
php如何调用js方法??
一个运行在服务器端一个运行在前端,从你发起请求在服务器端运行PHP脚本到返回结果两者都没有交集何来调用!
表单提交前后的html文档都不一样,要不就是用ajax请求php脚本获取数据然后用你的js方法处理,要不就是在php运行完后生产的新页面里面处理。
php中调用js,我一般都直接echo "";
就是echo直接输出。
找不到那个方法是因为你echo输出这段script之前并没有引用到你那个js方法的定义。
处理方法:1、你输出的js格式对不对,js 方法 必须有包起来
2,你输出的方法有没有引入。
建议你先输出一个alert试试,要是这个没问题,可以弹出窗体,就说明方法不对,或者没引入js了。
总结:
本来用ajax处理确实很简单,就不会出现这个问题了,但是如果需要上传图片就不能使用ajax了。所以我使用的是form提交 target指向一个隐藏的iframe
我试过使用加载js文件在echo之前,这样导致的问题是这个弹出层获取到了,但是却不能显示当前页,而是输出到隐藏的iframe.
最终使用了一直折中的方法,直接在一个新开页面显示。
以上谢谢各位答疑!
楼主 这个问题 我也在找解决的方法 你找到了 么 我试过使用加载js文件在echo之前,这样导致的问题是这个弹出层获取到了,但是却不能显示当前页 就是获取不了当前页 纠结
本文原创发布php中文网,转载请注明出处,感谢您的尊重!