2017-02-09 9 views
0

こんにちは私はjavaについての専門的アドバイスを必要とする初心者プログラマーです。 フォームアクションを入力データで変更しようとしています。 などは、私のフォームアクションは、「http://ddd.com」であると私は入力「ABC」、それは http://ddd.com/abc に変更された場合、これは 入力オプションでフォームアクションを変更する

<body> 
    <form action="http://ddd.com"+"/"+"addr1"+"/"+"addr2", id="frm"> 
    <input type="text" name=addr1> 
    <input type="text" name=addr2> 
    <input type="submit" onclick=(this.form.frm.value)> 
    </form> 
</body> 

は私に答えを与えてください...私はこれまで持っているものです。ありがとう:)

+0

あなたが気にしている結果をお寄せください。 codeigniterからデータを取得しようとしていますか?これが当てはまる場合は、http://ddd.com/index.php?addr1=xxxx&addr2=xxxxのようにURLを構築することをお勧めします。codeigniterはこのフォーマットを簡単に取得できます。情報を得るのは難しいです... –

+0

もし私がabcとdefを入力すると、このように "http://ddd.com/abc/def"がポップアップします –

答えて

0

あなたはフォーム送信時にjavascript関数を呼び出すことができます。その関数内では、すべての入力値にアクセスして新しいURLを作成し、ajax呼び出しを行うことができます。 例:

<form name="search" onsubmit="return makeSearch()" > 
    Name: <input type="text" name="name1"/> 
    Age: <input type="text" name="age1"/> 
    <input type="submit" name="Submit" value="Submit"/> 
</form> 

function makeSearch() { 
// Get values from input fields to create your url 
    alert("Code to make AJAX Call"); 
    return false; 
} 

は、JavaScriptの関数がどのような場合にはfalseを返すべきであることを確認します。

0

このようにしてください。

から1.fromを取得します。action属性。

2.入力フィールドの値が変更された場合は、変更EventListenerを追加し、入力フィールドvalue.Andを使用して新しいフォームアクションを作成します。

input = document.querySelectorAll('input');//get all input elements 
 
form = document.querySelector('#frm');//get form 
 
formaction = form.getAttribute('action');//get form's current action 
 
//alert(formaction); 
 
input.forEach(function(input,index){//add event listener for each input 
 
input.addEventListener('change',function(){ 
 

 
var value = this.value;//get changed input field value 
 
var finalaction = formaction+"\/"+value;//make a final action of your form 
 
console.log(finalaction); 
 
form.setAttribute('action',finalaction); //set final action as current action 
 
form.submit();//finally submit your from 
 
}); 
 
    
 
});
<form action="http://ddd.com" id="frm"> 
 
    <input type="text" name=addr1> 
 
    <input type="text" name=addr2> 
 
    <input type="submit"> 
 
</form>

参照JSのフィドルはここFiddle

0
$('#frm).submit(function(ev) { 
    ev.preventDefault(); 
    var addr1 = document.getElementsByName("addr1")[0].value; 
    var addr2 = document.getElementsByName("addr2 ")[0].value; 
    var url = "http://ddd.com"+"/"+addr1+"/"+addr2; 
    $.ajax({ 
    type: 'POST', 
    url: url, 
    success:function(data){ 
      //your other codes here 
    }); 

}); 

あなたはjQueryのここで必要

0

まず:変数への入力を割り当てます。

var input = document.getElementsByTagName("input"); 
var text1 = input[0].text, text2 = input[1].text; 

次に、フォーム要素を変数に割り当てます。

var form = document.getElementById("frm"); 

サード:submitは、フォームのaction属性にテキストを追加することがクリックされたときに呼び出される関数を定義します。

function sub(){ 
    form.action += text1 + text2; 
}document.getElementById("submit"). onclick = "sub()"; 

このようにして、機能が変更された後でアクションが変更されます。

0

残念ながら私はあなたの質問にコメントを追加できませんので、ここで回答します。

私はあなたが問題について間違っているかもしれないと思います。 codeigniterに送信するためにフォームを使用している場合は、値を通常のGETまたはPOSTとして渡すことができます。

var frm = document.getElementById('frm'), 
 
    addr1 = document.getElementById('addr1'), 
 
    addr2 = document.getElementById('addr2'), 
 
    btn = document.getElementById('submit'), 
 
    baseAction = frm.action; 
 

 
btn.addEventListener('click',function(evt) { 
 
    evt.preventDefault(); 
 
    
 
    var frmAction = baseAction, 
 
     addr1Val = addr1.value.trim(), 
 
     addr2Val = addr2.value.trim(); 
 

 
    
 
    
 
    if(addr1Val != '') { 
 
    frmAction += addr1.value.trim(); 
 
    } 
 
    
 
    if(addr2Val != '') { 
 
    frmAction += "/" + addr2Val; 
 
    } 
 
    
 
    console.log(frmAction); 
 
    
 
    // Below would be used to submit the form 
 
    // frm.action = frmAction; 
 
    // frm.submit() 
 
    
 
    // OR you could just link out like this ... 
 
    // location.href = frmAction; 
 
    
 
});
<form action="http://ddd.com" id="frm"> 
 
    <input type="text" name="addr1" id="addr1"> 
 
    <input type="text" name="addr2" id="addr2"> 
 
    <input type="button" value="Submit" id="submit"> 
 
    </form>
:あなただけCodeIgniterのページに「リンク」で、ルートを渡す必要がある場合、あなたはLOCATION.HREF

であることを行うことができますが、上記のあなたの質問に答えるために、あなたはこのような何かをするだろう

関連する問題