2015-06-13 34 views
0

我想問一下如何更改表單中輸入的值,但它有多個數據值。PHP Javascript如何更改用戶表單的值,但值有多個數據

我的表格:

<form method="post" action="pax-flight.php#pax-flight" class="paxform"> 
    <input type="hidden" value="{"data":{"user_agent":"sometravel","user_pass":"sometravel","additional":"99507","depart":"SUB","destiny":"CGK","date":"20-06-2015","date2":null,"adult":"1","child":"0","infant":"0"},"0":{"airlines_code":"ID 6401","airlines_name":"lion","airlines_class":"Economy","airlines_seat":1,"airlines_price":"685000","airlines_nta":664450,"airlines_depart":"05:30","airlines_depart_fr":"SUB","airlines_arrive":"07:00","airlines_arrive_to":"CGK","airlines_international":2}}" 
      name="data"> 

    <div class="search"> 
     <input class="searchbtn" type="submit" value="Next »"> 
    </div> 
    <br> 
</form> 

,以及如何我可以從值更改數據,例如,我想只更改日期,或想只改變airlines_class。 是可能的嗎?

*無需刷新頁面,js可以輕鬆更改數據,對不對?但如何更改值內的1個數據?

+0

我想你試圖從'input'標記的value屬性中檢索'json'對象。是嗎? – debatanu

+0

json對象是所有組件數據,對不對?我可以修改所有數據,但它需要刷新頁面,我只想通過點擊自動更改1個數據的值而不刷新它。 – pr4mz

回答

0

看問題是如果你使用一些代碼綁定json數據,那麼你需要使用JSON.stringify來綁定它。在您的情況下,輸入的value{,這就是您無法按自己的需要訪問數據的原因。但是,假設它是正確的約束,

<script> 
var obj={"data":{"user_agent":"sometravel","user_pass":"sometravel","additional":"99507","depart":"SUB","destiny":"CGK","date":"20-06-2015","date2":null,"adult":"1","child":"0","infant":"0"},"0":{"airlines_code":"ID 6401","airlines_name":"lion","airlines_class":"Economy","airlines_seat":1,"airlines_price":"685000","airlines_nta":664450,"airlines_depart":"05:30","airlines_depart_fr":"SUB","airlines_arrive":"07:00","airlines_arrive_to":"CGK","airlines_international":2}}; 
window.onload=function(){ 
var input=document.getElementsByTagName('input'); 
for (var i = 0; i < input.length; i++) { 
    if (input[i].type=='hidden') { 
     input[i].value=JSON.stringify(obj).replace(/"/g,'\\"'); 
    }  
    } 
}; 
</script> 

這樣您input現在已經分配給其value的對象。現在,如果你想獲取任何從它的數據,你可以做

var input=document.getElementsByTagName('input')[0].value; 
    //assuming the input tag to be the first tag in the html content 
    var retrive=JSON.parse(input); 

現在,你必須在retrive變量的對象。您可以繼續進行修改,然後重新分配給隱藏的input標記。

取下面

例子:

function modifyData() 
{ 
    var input =document.getElementsByTagName('input'); 
    for (var i = 0; i < input.length; i++) { 
    if (input[i].type=='hidden') { 
     var retrieve=JSON.parse(input[i].value.replace(/\\"/g,'"')); 
     //got the original object 
     //Now you can access the objects as follows 
     retrieve.data.user_pass="LOTOFTRAVEL";//Initial value - sometravel 
     //after modifying the data now putting it back to the value of the input tag 
     input[i].value=JSON.stringify(retrieve).replace(/"/g,'\\"'); 
    }  
    } 
} 

這應該這樣做。

+0

你能舉個例子來改變1個數據值嗎? – pr4mz

相關問題