我有一个名为bpSearch的文件。在bpSearch中,我有一个名为addNewModal的MODAL窗口。在addNewModal中,我有2个名为partnerName和partnerCode的INPUT字段。我有一个按钮,一旦点击,就会打开另一个名为searchPartnerModal的MODAL窗口。
以下是addNewModal中的FORM的一部分:
<form action="bpSearch.php" method="get">
<input type="text" readonly id="partnerName" name="partnerName" />
<input type="text" readonly id="partnerCode" name="partnerCode" />
<a href="#searchPartnerModal" data-toggle="modal" class="btn">Go</a>
</form>
当用户点击GO时,它会打开searchPartnerModal。
searchPartnerModal是用户输入代码或名称的位置(不必同时输入)。但是在按下SEARCH时,我使用一个AJAX调用来返回我解析的JSON并最终返回一个名为pNames的UL字段。我们仍然在searchPartnerModal内。
这是searchPartnerModal中的FORM:
<form action="bpSearch.php" method="get">
<input type="text" id="pNameSearch" name="pNameSearch" />
<input type="text" id="pCodeSearch" name="pCodeSearch" />
<input type="button" class="btn" id="pSearch" name="pSearch" value="search" />
</form>
当用户输入名称时,我使用jquery将其发送到PHP脚本,然后将返回UL标记中的数据。
以下是搜索用户是否输入名称的jquery:
$('#pSearch').on('click', function()
{
var partnername = $('#pNameSearch').val();
if($.trim(partnername) != '')
{
$.post('api/pNameSearch.php', {partnername: partnername}, function(data)
{
var obj = JSON.parse(data);
$('#pNames').empty();
var htmlToInsert = obj.map(function (item)
{
return '<li><a id="getPInfo" href="javascript:;"
onclick="getPInfo()" data-selname="'+item.FULL_NAME+'"
data-selcode="'+item.PARTNER_CODE+'">'
+ item.FULL_NAME + ' - '
+ item.PARTNER_CODE + '</a></li>';
}).join('');
$('#pNames').html(htmlToInsert);
});
};
});
使用此代码,我可以发送名称以在数据库表中搜索有效名称。数据通过JSON返回,并在UL标记(称为pNames)内解析并显示为LI标记,每个标记都带有一个带有自己数据属性的A标记,称为data-selname和data-selcode。
现在我需要做的是,一旦用户点击pNames中返回的数据链接之一,我需要将其发送回上一个模态窗口addNewModal。
这就是我被困的地方。
如果您查看上面的Jquery,在解析JSON之后,您将看到我在每个返回的数据片段的A标记内创建了另一个Javascript函数,名为getPInfo()。
以下是我到目前为止函数getPInfo():
function getPInfo()
{
var selname = ($('#getPInfo').attr('data-selname'));
var selcode = ($('#getPInfo').attr('data-selcode'));
}
此时,我可以提醒两个变量(selname和selcode)并让它们显示在警告窗口中。
我想要做的是将这两个变量发送回各个INPUT字段中的addNewModal,称为partnerName和partnerCode。
所以selname将转到partnerName,selcode将转到partnerCode。
我没有显示返回数据的PHP脚本。
答案 0 :(得分:1)
将锚 id = getPInfo 更改为 class = getPInfo ,因为您有多个锚点。接下来,处理锚点的click事件并提取数据属性并在addNewModal表单中设置相应的表单元素。以下应该基于我目前看到的标记工作。
$(function(){
$('body').on('click', 'a.getPInfo', function (e) {
var $a = $(e.srcElement || e.target);
$('#partnerName').val($a.attr('data-selname'));
$('#partnerCode').val($a.attr('data-selcode'));
$('#searchPartnerModal').modal('hide'); //assuming bootstrap modal
});
});