2010-08-04 23 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>