Javascript id 作为 href 中的参数


Javascript id as parameter in href

第二张图片,第一张图片我有一组链接,会打开一个弹出表单。
单击链接时,我想向表单发送一个参数,然后在表单提交时使用它。
我可以设置要作为<a>标签的 id 传递的值。我可以发送到更远的地方吗?

<div> <span>Chapter $i:</span>
  <a href='$viewlink '>View</a><span class='status'>Status:$status </span>
  <a href=$reqlink id=$i data-rel='popup' class='ui-btn ui-btn-inline ui-corner-all ui-icon-check ui-btn-icon-left'>Request Access</a></div><br/>";
<form method="post" action=" " id="myPopup" data-role="popup" style="padding:10px">
  <h3>Enter your details</h3>
  <input type="text" name="name" id="name" placeholder="Name" required>
  <input type="email" name="email" id="email" placeholder="Email" required>
  <input type="date" name="date" id="date" placeholder="Intended completion date" required>
  <input type="submit" data-inline="true" value="Submit" name='submit'>
</form>

可以在javascript中做吗?怎么办?

选项 #1:

设置隐藏的输入,并在单击链接时将值发送给它们。然后,您可以在发送表单的另一端获取这些内容。

(注意:在我的代码示例中,我明确使用 PHP,因为您似乎已经复制了截取的代码)

echo "<a href='$viewlink' onclick='$(''#viewlink'').val(1);'>View</a><span class='status'>Status:$status </span>
<!-- Do the following inside the form -->
<input type='hidden' name='viewlink' id='viewlink' value='0' />";

在 PHP 接收端,您可以这样做:

if ($_POST['viewlink'] == 1) {
    // do stuff
}

选项#2:

或者,您可以将数据发送到 javascript 数组,防止在提交表单时发布,注意将数组作为查询字符串添加到表单操作中,然后显式发送表单。

echo "<a href='$viewlink' onclick='linkClicked('viewlink');'>View</a><span class='status'>Status:$status </span>

这是你在javascript文件中要做的事情:

var queryString = [];
function linkClicked (type) {
    queryString[type] = 1;
}
$("#myPopup").submit(function(event) {
    event.preventDefault();
    $(this).attr('action', $(location).attr('host') + $.param(queryString));
    $(this).submit();
});

在 PHP 接收端,您可以执行以下操作(请注意,上面的$_POST已更改为 $_GET):

if ($_GET['viewlink'] == 1) {
    // do stuff
}

试试这个。

<a id = 'yourid' class = 'mybtn'>click me..</a>
<form id = 'myform'>
  ....
</form>

Jquery

$(document).ready(function(){
    $('.mybtn').click(function(){
        var id = $(this).attr('id');
        var SubmitForm = $("#myform").serializeArray();
        $.post("somepage.php",
        {
         SubmitForm:SubmitForm,
         ID:id
        },
        function(res){
            alert(res);//your result..
        });
});