将输入属性(非值)发布到感谢页面

时间:2017-10-09 02:15:36

标签: php jquery ajax forms post

有没有办法将除值以外的属性发布到另一个页面?

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

我知道我可以发布价值并使用$ _POST,

在感谢页面上获取它

但如果我想获取数据键而不是值?

3 个答案:

答案 0 :(得分:1)

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

但是你需要通过hs表单发送的js发送值

答案 1 :(得分:0)

您可以发布value(除非您使用AJAX和一些操作)。如果你选择JavaScript路线,可以通过以下方式实现:

$('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
  });
});

更好的问题是为什么您是否尝试这样做?如果您只想输出BG,请将其用作value。如果您希望 BulgariaBG,则可以使用隐藏输入另外发送辅助数据(作为{{1} }}):

value

答案 2 :(得分: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']中收到它们。