2017-10-09 24 views
1

有沒有辦法將屬性以外的值發佈到另一頁?Post輸入屬性(非值)感謝頁面

對於例如:如果我有<option value="Bulgaria" data-key="BG" data-geo="EMEA">Bulgaria</option>

我知道我可以張貼的價值,並得到它的感謝頁面用$ _ POST,

但如果我想獲得的數據密鑰,而不是的價值?

+1

可能重複[$ \ _ POST另一個屬性比值](https://stackoverflow.com/questions/11579608/post-another-attribute-than-value) –

+0

使用formdata併發送它 – guradio

回答

0

你可以只有發佈value(除非你使用AJAX和一些操作)。

$('form').submit(function(e) { 
    data = {}; 
    url = ''; 
    e.preventDefault(); 
    $('input', this).each(function() { 
    var pcs = $(this).data(); 
    var datakey = $(this).attr('data-key'); 
    if (undefined == data[datakey]) { 
     data[datakey] = {}; 
     data[datakey]['_'] = $(this).val(); 
    } 
    $.each(pcs, function(k, v) { 
     data[datakey][k] = v; 
    }); 
    }); 
    $.ajax({ 
    url: url, 
    data: data, 
    type: "POST" 
    }).done(function() { 
    // data-key successfully POSTed 
    }); 
}); 

更好的問題是爲什麼你試圖做到這一點:如果你去了JavaScript的路線,這將與像這樣能實現嗎?如果您只想要輸出BG,請將其用作value。如果你想BulgariaBG,你可以使用一個隱藏輸入的額外發送輔助數據(作爲value):

<input type="hidden" name="shortcode" value="BG" /> 
+0

爲什麼標記爲重複然後在這裏複製一些答案? – ishegg

+0

作爲類似問題的路標。 –

+0

如果您有'submit'或'change'處理程序將相關屬性複製到隱藏的輸入中,您可以發佈其他屬性*不帶* Ajax。 – nnnnnn

1
$("#myselect option:selected").data("key") or 
$("#myselect option:selected").attr("data-key") 

但是你需要通過JS送價值HTML表單的insted的發送

0

簡單,你可以嘗試:

HTML:

<form ... method="post" onsubmit="return form_check()"> 
    <input type="hidden" name="data_key" id="data_key"> 
    <input type="hidden" name="data_geo" id="data_geo"> 
    ... 
    <button type="submit">Submit</button> 
</form> 

的jQuery:

function form_check() { 
    $('#data_key').val($('#myselect option:selected').data('key')); 
    $('#data_geo').val($('#myselect option:selected').data('geo')); 
    return true; 
} 

然後在你的PHP,你會在$_POST['data_key']$_POST['data_geo']接收它們。

相關問題