2010-08-04 37 views
0

我需要一个表单执行两个脚本,这意味着来自同一表单的两个不同的动作。我已经尝试了一些在提交按钮上使用onClick操作中的form.submit()的javascript。但是,这两个操作之一是一个转到Dynamics CRM的ASPX脚本。有什么建议么?来自同一表单的两个动作

+0

为什么ASPX脚本妨碍使用JavaScript这样做呢? (这是做到这一点的唯一方法) – 2010-08-04 18:05:36

+0

[表单提交上的两种不同操作]的可能的重复(http://stackoverflow.com/questions/2384819/two-different-actions-on-form-submit) – Gordon 2010-08-04 18:10:01

+0

它不一定。但是我可以得到一个Javascript来处理两个不同的PHP文件。 ASPX是我无法访问的文件。这就是为什么我首先需要第二个动作。 – sehummel 2010-08-04 18:10:18

回答

2

使用jQuery,你可能会中断的表单提交,做你自己的事情,它实际上提交之前。使用jquery's ajax post

例子:

$('form').submit(function(){ 
    $.post( 
     'action2.php', // url of php 

     {    // data to send 
      data1:'bob', 
      data2:'denver' 
     } 

    ) 
}) 
+0

@shummel这不仅仅是“即插即用”。你需要首先包含jquery,等等。阅读jQuery,这是非常有用的。 – hookedonwinter 2010-08-04 18:23:25

+0

谢谢,hookedonwinter。希望我能做到这一点。 – sehummel 2010-08-04 18:27:36

3

也许形式只能有一个行动,将请求转发给第二个动作,一旦完成其操作

+0

绝对同意。 '

',在action1.php上做你的thang,然后将数据发送到action2.php。 – hookedonwinter 2010-08-04 18:12:05

+0

+1 - 在服务器上执行此操作而不是试图让客户端执行某些形式的事情是不正确的解决方案。转发可以(通常应该)完全在内部完成,只需一个简单的控制器将数据推送到两个例程来处理它,然后将单个结果返回给浏览器。 – Quentin 2010-08-04 18:12:33

+0

我无法访问第一个动作,或者我会采用hookedonwinter的建议。有人可以用一些AJAX指向正确的方向吗? – sehummel 2010-08-04 18:14:40

0

你能不能有一个中间的脚本,该调度信息。到第二个脚本?例如(submit.php):

<?php 
if (isset($_POST['action_1'])) { 
    // send to script 1 
} 
else if ($_POST['action_2']) { 
    // send to script 2 
} 
else { 
    // friendly error handling here 
} 
?> 

而且表单的加价......

<form action="submit.php" method="post"> 
    <input type="submit" name="action_1" value="Action 1" /> 
    <input type="submit" name="action_2" value="Action 2" /> 
</form>