Php 将数据从锚链接传递到AJAX

Php 将数据从锚链接传递到AJAX,php,ajax,laravel,Php,Ajax,Laravel,我正在考虑一种方法,通过在属性链接上启用ajax来减少javascript/ajax代码的数量(idea发现) 目标是能够通过重用相同的javascript而无需编辑它来发出ajax请求 一切都很好,但我就是不知道如何通过锚链接传递多个数据 我正在试着用这个 <a href="{{ route('tasks.create') }}" data-endpoint="{{ route('tasks.create') }}" data-target="addtask .mod

我正在考虑一种方法,通过在属性链接上启用ajax来减少javascript/ajax代码的数量(idea发现)

目标是能够通过重用相同的javascript而无需编辑它来发出ajax请求

一切都很好,但我就是不知道如何通过锚链接传递多个数据

我正在试着用这个

<a href="{{ route('tasks.create') }}" 
    data-endpoint="{{ route('tasks.create') }}" 
    data-target="addtask .modal-content .panel-body"
    data-cache="false"
    data-async="true"
    data-parameters="[{{ $data1 }} , {{ $data2}}]" 
    >Add a task
</a>
在名为
tasks.create
的php脚本中,我想使用
$data1
$data2
。但我不知道如何做到这一点。有什么想法吗


或者整个想法都是愚蠢的,有一种更聪明的方法可以做到这一点?

从javascript的角度来看,我会使用不透明的字符串。首先,我会找到一个合理的分隔符,它不会出现在数据变量中,我假设“|”是有效的

html

php


我会这样做:

<a href="{{ route('tasks.create') }}" 
    data-endpoint="{{ route('tasks.create') }}" 
    data-target="addtask .modal-content .panel-body"
    data-cache="false"
    data-async="true"

    data1-parameters='{!! json_encode($data1) !!}'
    data2-parameters='{!! json_encode($data2) !!}'

    >Add a task
</a>
data-parameters="{{ $data1 }}|{{ $data2 }}" 
$params = explode("|", $data);
<a href="{{ route('tasks.create') }}" 
    data-endpoint="{{ route('tasks.create') }}" 
    data-target="addtask .modal-content .panel-body"
    data-cache="false"
    data-async="true"

    data1-parameters='{!! json_encode($data1) !!}'
    data2-parameters='{!! json_encode($data2) !!}'

    >Add a task
</a>
$('body').on('click', 'a[data-async="true"]', function(e)
{
    e.preventDefault();
    var self = $(this),
        url = self.data('endpoint'),
        target = self.data('target'),
        cache = self.data('cache');             

    $.ajax({
        url: url,
        cache : cache,
        data : {
            data1: self.attr('data1-parameters'),
            data2: self.attr('data2-parameters')
        },
        success: function(data)
        { 
           if (target !== 'undefined'){ $('#'+target).html( data ); }
        }
    });
});