[英]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.