Javascript 在提交时传递主键而不是属性
我有一个输入标签,它接受用户的输入,调用AJAX动态地从我的数据库输出建议。问题是我想存储与该属性关联的主键 我找到了一种方法,当用户选择一个值时,将其设置为主键;但是,我宁愿只在前端显示属性。基本上,我想做的是使用option标记并将值设置为主键,但是在阅读了它的文档之后,这看起来不起作用 HTML: PHP:Javascript 在提交时传递主键而不是属性,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我有一个输入标签,它接受用户的输入,调用AJAX动态地从我的数据库输出建议。问题是我想存储与该属性关联的主键 我找到了一种方法,当用户选择一个值时,将其设置为主键;但是,我宁愿只在前端显示属性。基本上,我想做的是使用option标记并将值设置为主键,但是在阅读了它的文档之后,这看起来不起作用 HTML: PHP: 代码中的问题是,您试图为输入输入zip\u id值,但此输入包含zip字段值-我假设它是文本表示。有几种方法可以在前端保存zip_id——要么将其存储在模型中(如果您使用的是某种MVC
代码中的问题是,您试图为输入输入zip\u id
值,但此输入包含zip
字段值-我假设它是文本表示。有几种方法可以在前端保存zip_id
——要么将其存储在模型中(如果您使用的是某种MVC框架,但事实并非如此),要么简单地添加一个隐藏的输入字段:
<input type="hidden" id="actual_zip_id" name="zip_id">
UPD
说到自动完成邮政编码的整个想法,正如(查看评论)所指出的,它看起来相当糟糕
因此,您希望首先使用regex验证它,然后执行与db相关的逻辑,如下所示:
$('#zip_id').on('change', function(){
// your stuff
})
最好的问候,Alexander代码中的问题是您试图为输入输入zip\u id
值,但此输入包含zip
字段值-我假设它是文本表示。有几种方法可以在前端保存zip_id
——要么将其存储在模型中(如果您使用的是某种MVC框架,但事实并非如此),要么简单地添加一个隐藏的输入字段:
<input type="hidden" id="actual_zip_id" name="zip_id">
UPD
说到自动完成邮政编码的整个想法,正如(查看评论)所指出的,它看起来相当糟糕
因此,您希望首先使用regex验证它,然后执行与db相关的逻辑,如下所示:
$('#zip_id').on('change', function(){
// your stuff
})
向您致意,Alexander什么是“不能以那种方式工作”?您不能为
元素设置值您正在尝试这样做吗?您希望使用哪种类型的输入?文本、复选框、收音机、选择?我认为您将列表(ul、ol、li)与选择和选项(下拉菜单)混淆了。什么是“不能那样工作”?您无法为元素设置值。您正在尝试这样做吗?您希望使用哪种类型的输入?文本、复选框、收音机、选择?我想你把列表(ul、ol、li)与选择和选项(下拉列表)混淆了。我不是说你的答案不正确,事实上它看起来很准确,但整个概念有点疯狂。存储邮政编码的ID而不是实际的邮政编码?假设我们谈论的是美国邮政编码,在查找表中有超过43000条记录,随着邮政编码的创建和失效,这些记录需要不断维护。这里似乎没有自动补码器,邮政编码不是很相似吗?它们只是一个由5个数字组成的序列,对吗?@DarrenGourley是的,更好的方法是在onchange
触发声音后验证输入,就像更好的选项一样。我想美国有某种地址查询服务来维护这类信息。我还是有点困惑。你是说我应该创建一个隐藏的输入字段并将其指定为主键?如何更改我的PHP代码来实现这一点?@user3264355您需要将类似$\u REQUEST['zip']
的内容更改为$\u REQUEST['zip\u id']
。请在我的回答中考虑DarrenGourley的评论和UPD。我并不是说你的答案是错误的,事实上它看起来很准确,但是整个概念有点疯狂。存储邮政编码的ID而不是实际的邮政编码?假设我们谈论的是美国邮政编码,在查找表中有超过43000条记录,随着邮政编码的创建和失效,这些记录需要不断维护。这里似乎没有自动补码器,邮政编码不是很相似吗?它们只是一个由5个数字组成的序列,对吗?@DarrenGourley是的,更好的方法是在onchange
触发声音后验证输入,就像更好的选项一样。我想美国有某种地址查询服务来维护这类信息。我还是有点困惑。你是说我应该创建一个隐藏的输入字段并将其指定为主键?如何更改我的PHP代码来实现这一点?@user3264355您需要将类似$\u REQUEST['zip']
的内容更改为$\u REQUEST['zip\u id']
。请在我的回答中考虑“DarrenGourley的评论”和“UPD”。
function set_item(item)
{
// change input value
$('#actual_zip_id').val(item);
// hide proposition list
$('#zip_codes_list_id').hide();
}
$('#zip_id').on('change', function(){
// your stuff
})