即使在成功消息之后,单选按钮的数据也没有保存在 Postgres DB 中

Posted

技术标签:

【中文标题】即使在成功消息之后,单选按钮的数据也没有保存在 Postgres DB 中【英文标题】:Data of radio button not being saved in Postgres DB even after a success message 【发布时间】:2021-08-13 20:11:44 【问题描述】:

嗨,我有这些单选按钮,我想在我的 Postgres db 中将它们的数据保存为 json。它没有被发送,我收到一条 message.success 回复说我发送了但是当我检查我的数据库时没有任何反应。 我不完全知道我错在哪里,所以如果你能帮忙,请分享。 PS:我使用的是 Ant Design vue,这就是 a- 的来源。 我确实单击了一个按钮,它会打开一个模式,其中有单选按钮:

 <template #modalite=" record ">
    <span>
      <a-button
        @click="showModalite(record)"
        class="btn btn-sm btn-light mr-2"
      >
        <i class="fe fe-edit mr-2" />
        Modalité 
      </a-button>
      
    </span>
  </template>

这是我的按钮代码:

 <a-modal
  v-model:visible="visible"
  :
  @ok="ChangeModalite(modelInfo)"
>
 <div class="row">
     <a-radio-group name="radioGroup" v-model:value="traitement">
    <div class="col-md-6">Négociation directe</div>
    <div class="col-md-3">
      <a-radio value="Négociation directe"  v-model:checked="modalite.negociation" />
    </div>
    <div class="col-md-6">Appel à concurrence</div>
    <div class="col-md-3">
      <a-radio value="Appel à concurrence" v-model:checked="modalite.concurrence"/>
    </div>
     </a-radio-group>
  </div> 

  
</a-modal>

脚本:

setup() 
const visible = ref(false)
 const traitement = ref('Négociation directe');
const modalite = ref(
  negociation:false,
  concurrence:false,
)
 const showModalite = (record) => 
  modelInfo.value = record
  modalite.value =  ...modalite.value, ...record.modalite 
  visible.value = true

  const ChangeModalite = (record) => 
  console.log(record.id+": "+traitement.value)

  axios.patch('/prop/' + record.id,
    modalite:modalite.value,
  )
  .then(()=>
    record.modalite=modalite.value
      Object.assign(
        dataSource.value.filter((item) => record.id === item.id),
        record,
      )        
    message.success(`successfully updated !!`)
    visible.value = false
  )
  .catch((e)=>
    message.warning("smthg wrong ")
  )


return 
  dataSource,
  modelInfo,
  showModalite,
  ChangeModalite,
  modalite,
  traitement,

   
  ,
         

那么现在发生的情况是我得到了“成功更新”的消息而没有真正更新。我在哪里错过了什么?

【问题讨论】:

【参考方案1】:

我将数据库中的类型从 json 更改为字符串,当我将此行 :axios.patch('/prop/' + record.id, modalite:modalite.value, ) 更改为 axios.patch('/prop/' + record.id, modalite:traitement.value, ) 时,一切正常 所以是的,数据得到了更新,仍然不知道为什么使用 json 类型它不起作用,但至少我找到了一种方法,如果你有解释或建议,它将被应用。

【讨论】:

以上是关于即使在成功消息之后,单选按钮的数据也没有保存在 Postgres DB 中的主要内容,如果未能解决你的问题,请参考以下文章

即使在输入字段中存在数据之后也会显示警告消息

即使在“保存”调用之后,Django 对象也没有保存

将多个真假单选按钮插入mysql

jQuery 验证,将错误消息放在复选框和单选按钮组下方

如何在单选按钮后显示验证消息?

离子单选按钮验证