将所选数据发送回原始数据 window
Send selected data back to original window
我有一个名为 bpSearch 的文件。在 bpSearch 中,我有一个 MODAL window,叫做 addNewModal。在 addNewModal 中,我有 2 个名为 partnerName 和 partnerCode 的 INPUT 字段。我有一个按钮,单击后会打开另一个模式 window,称为 searchPartnerModal。
这是 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 是用户输入代码或名称(不必同时输入)的地方。但是在点击搜索时,我使用 AJAX 调用 returns JSON 我解析并最终在名为 pNames 的 UL 字段中使用 return。我们仍在 searchPartnerModal 中。
这是 searchPartnerModal 中的表单:
<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 脚本,然后该脚本将 return 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);
});
};
});
使用此代码,我可以发送名称以在数据库 table 中搜索有效名称。数据通过 JSON 进行 return 编辑,并在 UL 标签(称为 pNames)内被解析并显示为 LI 标签,每个标签都有一个 A 标签,它们有自己的数据属性,称为 data-selname 和 data -selcode.
现在我需要做的是,一旦用户单击 pNames 中的 returned 数据链接之一,我需要将其发送回之前的模态 window,addNewModal。
这就是我卡住的地方。
如果你查看上面的 Jquery 内部,在我解析 JSON 之后,你会看到我在每个 [=57= 的 A 标签内创建了另一个 Javascript 函数]ed 数据,调用 getPInfo()。
这是我到目前为止对函数 getPInfo() 的了解:
function getPInfo()
{
var selname = ($('#getPInfo').attr('data-selname'));
var selcode = ($('#getPInfo').attr('data-selcode'));
}
此时,我可以警告两个变量(selname 和 selcode)并让它们显示在警告中 window。
我想要做的是将这两个变量发送回各自的 INPUT 字段中的 addNewModal,称为 partnerName 和 partnerCode。
所以 selname 将转到 partnerName,selcode 将转到 partnerCode。
我没有显示 return 编辑数据的 PHP 脚本。
将锚 id=getPInfo 更改为 class=getPInfo 因为您有多个锚。接下来处理锚点的点击事件并提取数据属性,在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
});
});
我有一个名为 bpSearch 的文件。在 bpSearch 中,我有一个 MODAL window,叫做 addNewModal。在 addNewModal 中,我有 2 个名为 partnerName 和 partnerCode 的 INPUT 字段。我有一个按钮,单击后会打开另一个模式 window,称为 searchPartnerModal。
这是 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 是用户输入代码或名称(不必同时输入)的地方。但是在点击搜索时,我使用 AJAX 调用 returns JSON 我解析并最终在名为 pNames 的 UL 字段中使用 return。我们仍在 searchPartnerModal 中。
这是 searchPartnerModal 中的表单:
<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 脚本,然后该脚本将 return 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);
});
};
});
使用此代码,我可以发送名称以在数据库 table 中搜索有效名称。数据通过 JSON 进行 return 编辑,并在 UL 标签(称为 pNames)内被解析并显示为 LI 标签,每个标签都有一个 A 标签,它们有自己的数据属性,称为 data-selname 和 data -selcode.
现在我需要做的是,一旦用户单击 pNames 中的 returned 数据链接之一,我需要将其发送回之前的模态 window,addNewModal。
这就是我卡住的地方。
如果你查看上面的 Jquery 内部,在我解析 JSON 之后,你会看到我在每个 [=57= 的 A 标签内创建了另一个 Javascript 函数]ed 数据,调用 getPInfo()。
这是我到目前为止对函数 getPInfo() 的了解:
function getPInfo()
{
var selname = ($('#getPInfo').attr('data-selname'));
var selcode = ($('#getPInfo').attr('data-selcode'));
}
此时,我可以警告两个变量(selname 和 selcode)并让它们显示在警告中 window。
我想要做的是将这两个变量发送回各自的 INPUT 字段中的 addNewModal,称为 partnerName 和 partnerCode。
所以 selname 将转到 partnerName,selcode 将转到 partnerCode。
我没有显示 return 编辑数据的 PHP 脚本。
将锚 id=getPInfo 更改为 class=getPInfo 因为您有多个锚。接下来处理锚点的点击事件并提取数据属性,在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
});
});