Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在提交时传递主键而不是属性_Javascript_Php_Jquery_Html_Mysql - Fatal编程技术网

Javascript 在提交时传递主键而不是属性

Javascript 在提交时传递主键而不是属性,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我有一个输入标签,它接受用户的输入,调用AJAX动态地从我的数据库输出建议。问题是我想存储与该属性关联的主键 我找到了一种方法,当用户选择一个值时,将其设置为主键;但是,我宁愿只在前端显示属性。基本上,我想做的是使用option标记并将值设置为主键,但是在阅读了它的文档之后,这看起来不起作用 HTML: PHP: 代码中的问题是,您试图为输入输入zip\u id值,但此输入包含zip字段值-我假设它是文本表示。有几种方法可以在前端保存zip_id——要么将其存储在模型中(如果您使用的是某种MVC

我有一个输入标签,它接受用户的输入,调用AJAX动态地从我的数据库输出建议。问题是我想存储与该属性关联的主键

我找到了一种方法,当用户选择一个值时,将其设置为主键;但是,我宁愿只在前端显示属性。基本上,我想做的是使用option标记并将值设置为主键,但是在阅读了它的文档之后,这看起来不起作用

HTML:

PHP:


代码中的问题是,您试图为输入输入
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
    })