[求助]JavaScript调用PHPscript,或者反过来要怎么做?

mykelly6 2009-06-18 03:22:21
做了一个订货网页,本来是form表单提交到php页面,把接收的数据处理下,给订货的人和店家都发个邮件,就结束了。
但是客户和我们头商量了,说只要一个页面,不要跳转。就变成了这样的流程:
1。点订货按钮,用js做数据格式检查。

2。检查没问题了,confirm一下问是不是确定要订货。

3。确定订货后js调用php的发送邮件(这里就不知道php脚本怎么去获得输入的数据了,js用的事document.all.textboxname获取的。也搞不清怎么去掉用php的东西)

4。php的处理之后再次用js显示个弹出窗口。

或者反过来:
1。点订货按钮,PHP的onclick(有这样的东西吗)里面调用js检查数据,再confirm

2。php脚本发送邮件,还是不知道怎么获得输入的表单数据。。。

3。发完了再调用js弹出窗口。

写的有点乱,还请各位大哥指点。
另外,这个页面不让用submit,因为输入的数据都得留着。


...全文
329 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
mykelly6 2009-06-19
  • 打赏
  • 举报
回复
我也觉得是ajax比较好,但是以前都没弄过,所以想尝试有没有其他的方式来实现。

恩,揭帖学习去了
cyxin2121921 2009-06-19
  • 打赏
  • 举报
回复
mark
TR@SOE 2009-06-19
  • 打赏
  • 举报
回复
sorry,地址给错了:http://www.rsywx.net/jquery/demos/index.html
TR@SOE 2009-06-19
  • 打赏
  • 举报
回复
终于看完了帖子和回帖。

这个要求从根本上说是AJAX的处理方式……

大概流程:

1. JS: 获取所有的表单数据;
2. JS:判断数据合法性和合理性;通过json打包发给后台PHP;
3. PHP: 进一步判断数据,进行后台处理,返回状态信息给前台JS;
4. JS: 根据返回信息判断处理是否成功并提示。

如果你对AJAX没有基础,可以直接从现成的AJAX封装入手,比如jQuery。我的站点中有一些例子可以参考:www.rsywx.net/jquery/index.html
mykelly6 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 tfxg 的回复:]
說來說去還是AJAX
[/Quote]
我这个要做的就是无刷新提交阿,因为我php发送邮件之后还得对订货页面做一些处理。
我找到的下面这个示例还是刷新了。
您写的那个iframe和这个有什么不同吗?

<?php
print_r($_POST);
?>
<script language=javascript>
String.prototype.lenb = function() {
return this.replace(/[^\x00-\xff]/g,"**").length;
}

function foo(form) {
 form.sen.value = form.sendername.value.lenb();
return true
}
</script>
<form method=post onsubmit="return foo(this)">
<input type=hidden name=sen>
<input type=text name=sendername>
<input type=submit>
</form>

tfxg 2009-06-19
  • 打赏
  • 举报
回复
說來說去還是AJAX
mykelly6 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 llj480028 的回复:]
用AJAX吧,在JS里可以用responseText得到php传回的数据嘛!
ajax不怎么复杂,就那么几个函数和属性。
[/Quote]
就是说因为ajax是不刷新提交的,所以提交到php处理发送邮件后,得到一个返回值。
这时候就知道发送成功了,我再弹出提示框是吗?

ajax果然强大阿
foolbirdflyfirst 2009-06-19
  • 打赏
  • 举报
回复
来得及,基本上都是javascript这边的活,不行就网上搜一搜,copy & paste.
llj480028 2009-06-19
  • 打赏
  • 举报
回复
用AJAX吧,在JS里可以用responseText得到php传回的数据嘛!
ajax不怎么复杂,就那么几个函数和属性。
mykelly6 2009-06-19
  • 打赏
  • 举报
回复
忘记说了,偶不会用ajax,不知道现学来得及吗?。。。
mykelly6 2009-06-19
  • 打赏
  • 举报
回复
不是我想的复杂了,是我们头要这么干啊。。
12#的 ajax post表单数据至php页面我感觉可行,不用刷新,因为发送完邮件还要弹出个窗口,
让用户选择是清除一部分输入数据,还是返回上个页面,还是打开一个新的订货窗口。
iwantnet 2009-06-18
  • 打赏
  • 举报
回复
我感觉你把问题想的复杂了。
1,验证数据的格式,这个通过了。
2。确认是不是提

<script type="text/javascript" language="javascript">



<!--



function confirmAct()
{
if(订单数据正确)
{
if(confirm('确定要执行此操作吗?'))
{
return true;
}



return false;
}
else
{
格式不正确的订单数据
}

}


</script>
<a href="operate.php?mod=user&act=delete&id=564" onclick="return confirmAct();">执行操作</a>

foolbirdflyfirst 2009-06-18
  • 打赏
  • 举报
回复
javascript -> 检测数据 -> ajax post表单数据至php页面->php $_POST接收post过来的数据->发邮件。
mykelly6 2009-06-18
  • 打赏
  • 举报
回复
谢谢,明天上班再研究
不过我似乎需要用phpscript来获得参数,因为邮件发送都是用phpscript写的
tfxg 2009-06-18
  • 打赏
  • 举报
回复
幫人幫到底了



onclick調用彈出窗口:
function popUp(id)
{
var width = 260;
var height = 180;

var sFeatures='dialogWidth: '+ width + 'px; dialogHeight: ' + height + 'px; center: yes; status: no; help: no; scroll: no;';
window.showModalDialog('./popup_iframe.php?id='+id,window.self,sFeatures);
update.location.href('./check.php?id='+id);

return;
}
html套入如下:
<iframe width='0' height='0' src='check.php' name='update'></iframe>


這個可以實現在處理完彈出的ModalDialog後進一步執行check.php,更多參數可以由getElementById獲得
mykelly6 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cgisir 的回复:]
把表单提交指向一个 本页里看不到的 iframe ,数据返回后可以直接执行 js或调用 父页JS(因为当前是iframe页)parent.fn();

<form target="myIframe" action="" onsubmit="return myCheck()" method="">
<input type="submit" value="submit" />
</form>

<iframe style="height:0" name="myIframe"> </iframe>
[/Quote]
showmodaldialog也可以传parent的window作为参数的就是不知道怎么接。

我想知道提交到iframe里面,页面会刷新吗?
我原来直接提交到本页面,就刷新了。。
cgisir 2009-06-18
  • 打赏
  • 举报
回复
把表单提交指向一个 本页里看不到的 iframe ,数据返回后可以直接执行 js或调用 父页JS(因为当前是iframe页)parent.fn();

<form target="myIframe" action="" onsubmit="return myCheck()" method="">
<input type="submit" value="submit" />
</form>

<iframe style="height:0" name="myIframe"></iframe>
mykelly6 2009-06-18
  • 打赏
  • 举报
回复
我也是这么想的阿,但是客户不希望这么做~
您的意思是说php的操作完成以后,再跳转回这个页面吗?

但是这么做的话回到这么页面还需要做一些js的提示,弹窗什么的,这该怎么办呢?

我还有一个想法是js检查完数据确认后,showmodaldialog,在这个模态窗口发送php邮件,但是我不知道showmodaldialog传
的参数用php怎么去接收~
tfxg 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mykelly6 的回复:]
引用 2 楼 tfxg 的回复:
这个页面不让用submit,因为输入的数据都得留着。

用ajax可以實現你的要求


我也这么觉得,可惜我没弄过ajax,我们头都没做过网页,临时让我帮忙的。。。
[/Quote]

那樣你還是一個動作提交一次好,也別想什麼東西了。

要在頁面做JS檢查就在submit按鈕中寫onclick事件,如:<input type='submit' name='ADD' value='Save' Onclick="return add();">
function add()
{
if(document.form.Name.value=='')
{
alert('名字不能為空');
return false;
}
if(confirm('是否提交'))
return true;
return false;
}
確定後就提交到你form action指向的php頁面
php完成動作後就:
echo " <script language='javascript'>window.location.href='check.php'; </script>";

mykelly6 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tfxg 的回复:]
这个页面不让用submit,因为输入的数据都得留着。

用ajax可以實現你的要求
[/Quote]
我也这么觉得,可惜我没弄过ajax,我们头都没做过网页,临时让我帮忙的。。。
加载更多回复(3)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧