繁体   English   中英

在表单提交之前添加验证,引用PHP会话变量

[英]Add Validation Before Form Submit Referencing PHP Session Variable

我有一个表,允许用户从项目列表中进行选择:

 <table class="table table-condensed table-striped table-bordered"> <thead> <th scope="col">Code</th> <th scope="col">Description</th> <th class="text-center" scope="col">Select</th> </thead> <tbody> <tr class="" id="PR7518"> <td>1234A</td> <td>Option A</td> <td class="text-center"> <button type="button" class="btn btn-success btn-sm">Select</button> </td> </tr> <tr class="" id="PR7636"> <td>45678B</td> <td>Option B</td> <td class="text-center"> <button type="button" class="btn btn-success btn-sm">Select</button> </td> </tr> <tr class="" id="PR9149"> <td>9988C</td> <td>Option C</td> <td class="text-center"> <button type="button" class="btn btn-success btn-sm">Select</button> </td> </tr> <tr class="" id="PR9187"> <td>4455D</td> <td>Option D</td> <td class="text-center"> <button type="button" class="btn btn-success btn-sm">Select</button> </td> </tr> </tbody> </table> 

当他们单击“是”按钮时,它会触发AJAX请求,以为其选择的项目的ID设置一个PHP会话变量:

$productID = $_POST['itemID'];
$_SESSION['selectedItemID'] = $itemID;

当用户提交表单时,我进行测试以确保$ _SESSION ['selectedItemID']不为空,如果为空,则会显示错误消息,例如:

if ($_SESSION['selectedItemID'] == '') {
// display error message
}

我想添加一些客户端站点验证,以便它在表单页面上显示警报,并在用户尚未选择时阻止他们提交表单。

这是我目前的脚本:

 $(document).ready(function() { $('button.btn-success').click(function() { // Remove the classes from all of the TR elements $(this).parents('table').find('tr').removeClass('success warning danger'); var itemID = $(this).closest('tr').attr('id'); console.log(itemID); // Create a reference to $(this) here: $this = $(this); $.post('updateSelection.php', { itemID: itemID, selectionType: 'yes' }, function(data) { data = JSON.parse(data); if (data.error) { console.log(data); console.log('something was wrong with the ajax request'); $this.closest('tr').addClass("warning"); //make alert visible $("#alert_ajax_error").show(); return; // stop executing this function any further } else { console.log('update successful - success add class to table row'); $this.closest('tr').addClass("success"); $this.closest('tr').removeClass("danger"); //$(this).closest('tr').attr('class','success'); } }).fail(function(xhr) { console.log('ajax request failed'); // no data available in this context $this.closest('tr').addClass("warning"); //make alert visible $("#alert_ajax_error").show(); }); }); }); 

我不确定如何链接提交按钮以检查PHP $ _SESSION ['selectedItemID']会话变量是否存在? 还是有另一种方法可以达到相同的结果?

我最终将选定的ID写入隐藏的表单输入中,然后在提交时检查该隐藏的输入是否为空。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM