2012-07-16 21 views
1

我有這樣的:如果單選按鈕選中,然後提交到不同的頁面

<form method="post" id="kl" action="step2.php"> 

<input type="radio" name="rubrik" value="bussines"></input> 
<input type="radio" name"rubrik" value="private"></input> 

<input type="image" value="submit" src="/images/submit.png" alt="Submit" /> 

</form> 

我bassicaly想要的是:當第二個單選按鈕被選中,提交step2a.php的形式,不同的文件。我怎樣才能做到這一點? jquery,Javascript,php?

+2

您可以通過課程的Javascript做到這一點,但JavaScript是沒有意識到這個問題的方法,因爲它可以和將被停用在某些用戶的瀏覽器中。 最好的情況是,如果您只是執行step2.php中的所有檢查,然後通過適當的HTTP標頭將用戶重定向到他應該去的頁面。 – YMMD 2012-07-16 12:15:58

回答

6

你可以用JavaScript來做到這一點(綁定一個提交監聽器來檢查單選按鈕的值,然後設置表單的動作屬性),但沿着(服務器端)做一些事情會更簡單也更可靠的線路:

<form ... action="step-selector.php"> 

<?php 
    if (isset($_POST['rubrik']) && $_POST['rubrik'] == 'bussines') { 
     include('step2.php'); 
    } elseif (isset($_POST['rubrik']) && $_POST['rubrik'] == 'private') { 
     include('step2a.php'); 
    } else { 
     include('error-state.php'); 
    } 
?> 
+0

精彩的回答。正是我需要的,正是我最需要的。謝謝你,昆汀! – raz 2012-07-16 14:39:54

-1

有這樣做,這取決於你想要什麼的多種方式。

檢查這一個,它可能會幫助你到達那裏; Radio Button to open pages

-1

您可以使用form.submit()作爲onclick-handler(不是onchange)並更改操作。

<input type="radio" name"rubrik" value="private" onclick="this.parentNode.action='yourOtherFile.php'; this.parentNode.submit()"></input> 
0
if($("input[@name=rubrik]:checked").val()=="private") 
{ 
$("#kl").attr("action","step2a.php"); 
} 

現在做的提交。

我沒有測試代碼,希望它會給出一個想法。

0

您可以通過修改形式進入這樣做:

<form method="post" id="kl" action="step2.php"> 

<input type="radio" class="radio" rel="step2.php" name="rubrik" value="bussines"></input> 
<input type="radio" class="radio" rel="step2a.php" name"rubrik" value="private"></input> 

<input type="image" value="submit" src="/images/submit.png" alt="Submit" /> 

</form> 

我添加了rel屬性單選按鈕。每個都有一個url的值。我還添加了一個類來使用jQuery獲取元素。現在

,你將需要一些JavaScript,我將使用jQuery代碼:

$('.radio').click(function(){ 
    rad = $(this); 
    radRel = rad.attr('rel'); 
    $('form#kl').attr('action', radRel); 
}); 
+0

'rel'具有定義的含義(不是「用於保存JavaScript的任意數據的屬性」),並且不會出現在輸入元素上。不要以這種方式濫用它。 – Quentin 2012-07-16 12:23:30

相關問題