2013-05-21 55 views
0

我有一個搜索表單,需要處理3種不同的方式:如何使用圖像鏈接提交表單以更改JS(無JQuery)的表單動作?

1)表單的默認操作應使用return/enter鍵提交。

2)如果點擊「image1」,則需要更新$which_action變量並提交表單。 3)如果點擊「image2」,$which_action變量需要更新並提交表單。

(我知道$which_action沒有在客戶端瀏覽器的存在,我剛纔包括它下面的代碼的佔位符)

這是我目前有上想什麼,我的一些筆記更多信息:

<form method="POST" action="<?php echo $which_action ?>" id="query"> 
    <input type="text" value="<?php echo $_POST['query']; ?>" /> 
</form> 

<image1>clicking this image should change $which_action=image1.php and POST the form value into $_POST['query'] while submitting the form. 
<image2>clicking this image should change $which_action=image2.php and POST the form value into $_POST['query'] while submitting the form. 

的JavaScript不應該影響與輸入/返回鍵提交表單的默認方法。

預先感謝您!

+0

你想動態地改變表單的動作,但不是用JavaScript?祝你好運。 – Halcyon

+1

這是一個請求,一個問題,你想要什麼? – samayo

+0

@frits:只使用Javascript,不使用Jquery庫。 – user2406852

回答

1
<form method="POST" action="" id="query"> 
<input type="text" value="<?php echo $_POST['query']; ?>" /> 
</form> 

<img src="" onclick="changeAction('image1.php')"> 
<img src="" onclick="changeAction('image2.php')"> 

<script> 
    function changeAction(url) { 
    document.getElementById("query").action = url; 
    document.getElementById("query").submit(); 
    } 

</script> 
+0

謝謝,這與我所需要的非常接近,但點擊圖片需求似乎沒有用表單中的值更新$ _POST ['query']? – user2406852

+0

這根本不可能......當PHP運行在服務器中時,Javascript在客戶端運行。如果您的意思是在發佈表單後,在PHP腳本中,您沒有收到$ _POST ['query']中的值,這是因爲您需要將 - name =「query」添加到輸入字段 –

+0

非常感謝! ! – user2406852

1

你的意思是這樣的嗎? http://jsfiddle.net/sebastianteres/mLBxR/

<form method="POST" action="<?php echo $which_action ?>" id="query"> 
    <input id="the_input" type="text" value="<?php echo $_POST['query']; ?>" /> 
</form> 

<image1 onclick="changeValue("foo")> 
<image2 onclick="changeValue("bar")> 

<script> 
    window.changeValue = function (val) { 
    document.getElementById("the_input").value = val; 
    } 
</script> 

在這一功能,你可以搜索形式(用ID)和更改操作屬性。

+0

感謝您的回覆。我不想改變表單值=「」,我想保持表單值(不管用戶輸入什麼內容),只需改變表單action =「」。當用戶點擊圖片時,它應該提交新的動作。 – user2406852