[英]Insert Only One Record In MYSQL database using php
我正在做一个项目,我想在特定时间只插入一条记录。
例如:在项目中,客户只给承包商打分一次。(当施工正在进行时)一旦他打分,他就不能再打分了。
我在网上查了一下,但没有找到我要找的东西。
现在我有 2 个想法。
1-一旦评级完成(通过服务器端验证),插入复选框并使其永久禁用。
2- 根据数字(如 7/10)评分并显示它们。
选择哪一个是击球手策略。
代码部分:
CheckBox 解决方案代码(Google 上没有关于服务器端验证的解决方案):
Checkbox: <input type="checkbox" id="myCheck"> <p>Click the "Try it" button to disable the checkbox.</p> <button onclick="myFunction()">Try it</button> <script> function myFunction() { document.getElementById("myCheck").disabled = true; } </script>
还在stackoverflow上检查了这个(但这不是我要找的):
[示例服务器端解决方案链接][1]
号码解法:
<table> <tr><td>Rate Your Contractor (Out Of 10)</td><td><input id="intLimitTextBox"></td></tr> </table> <script> function setInputFilter(textbox, inputFilter) { ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) { textbox.addEventListener(event, function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectionStart = this.selectionStart; this.oldSelectionEnd = this.selectionEnd; } else if (this.hasOwnProperty("oldValue")) { this.value = this.oldValue; this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd); } else { this.value = ""; } }); }); } // Install input filters. setInputFilter(document.getElementById("intLimitTextBox"), function(value) { return /^\d*$/.test(value) && (value === "" || parseInt(value) <= 10); }); </script>
是否有任何 php 方式(或两种方式)来实现我的问题的解决方案?
PS:我不是 web 开发方面的专家,如果我做错了,请见谅。
也许我误解了; 你的标题是关于 php,但你的问题似乎是符合人体工程学的。
对于评级,当前的演示文稿是一个星星列表,用户在其上单击想要的。
一旦用户提交了评级,我建议您使用相同的演示文稿,没有 javascript 和没有:hover 规则。
也许更改 colors (提交时为黄色,提交时为黑色或灰色且只读)
$('.star').on('click', function() { var v = $(this).data('value'); $('input[name="rating"]').val(v); $('.star').each(function() { var $this = $(this); $this.toggleClass('active', $this.data('value') <= v); }); });
/* remove spaces between stars */.stars { font-size:0; }.star::after { content:"☆"; display:inline; font-size: 14pt; padding: 0 5px; } /* by default, only fills active stars */.stars:not(:hover).star.active::after, .stars:hover.star::after { content:"★"; } /* unfill stars following the current hovered */.stars:hover.star:hover ~.star::after { content:"☆"; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="stars"> <input type="hidden" name="rating" value="" /> <span class="star" data-value="1"></span> <span class="star" data-value="2"></span> <span class="star" data-value="3"></span> <span class="star" data-value="4"></span> <span class="star" data-value="5"></span> </div>
那么,我将尝试回答您的第二个问题,但它有点模糊......
渲染表单:
检查该用户是否存在提交。
如果是,则使用该值将评级呈现为只读。 (如果评级是您拥有的唯一字段,甚至不呈现标签)
如果不是,则显示可提交的表单。
处理提交:
在处理提交时,检查该用户是否存在提交。
如果它已经存在,返回一个错误(用户试图欺骗你)否则,添加一个新的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.