检查要用作条件的表单值,而无需提交表单

Check for form value to use as a condition without having to submit form

本文关键字:表单 提交 检查 条件      更新时间:2023-09-26

我一直在使用以下代码:

<html>
<head>
<script>
function validatePfin() {
var x1 = document.forms["pfin"]["cash"].value;
var x2 = document.forms["pfin"]["all_assets"].value;
var x3 = document.forms["pfin"]["all_debt"].value;
if (x1 == null || x1 == "") {alert("Please enter Cash Amount.");}
else {
if (x2 == null || x2 == "") {alert("Please enter Non-Cash Assets.");}
else {
if (x3 == null || x3 == "") {alert("Please enter Total Debt.");}
else { 
 document.getElementById('sub1').value='Processing, please wait ...   '; 
 document.getElementById('sub1').disabled=true; 
form.submit(); 
 }}}
return false;
}
</script>
 </head>
<body>
<table>
<form method="POST" name="pfin"  autocomplete="on" target="vframe" action="p_financials_s.php" enctype="multipart/form-data" onsubmit="return validatePfin()">
<tr><td>
<select name="cash" id="cash">
<option value="<?php echo $row['cash'];?>" selected><?php echo $row['cash'];?></option>
<option value="">Select</option>
<option value="0" >0</option>
<option value="1000" >1000</option>
</select>
<tr><td>
<select name="all_assets" id="all_assets">
<option value="<?php echo $row['all_assets'];?>" selected><?php echo $row['all_assets'];?></option>
<option value="">Select</option>
<option value="0" >0</option>
<option value="1000" >1000</option>
</select>    
<tr><td>
<select name="all_debt" id="all_debt">
<option value="<?php echo $row['all_debt'];?>" selected><?php echo $row['all_debt'];?></option>
<option value="">Select</option>
<option value="0" >0</option>
<option value="1000" >1000</option>
</select>
<tr><td>
<input type="submit" id="sub1" class="back1" value="Save And Go To Next Step >">&nbsp;
</table>
  </form>
 </body></html>

这是代码中的精简片段。它所做的是,在提交时,表单检查字段是否有值,如果没有,则停止提交。

我想弄清楚的是,使用PHP/javascript(或?),我如何"读取"表单字段,检查它是否有值,并将其作为条件语句的变量,而无需提交并发布到DB。

例如,假设我希望"现金"值有一个值,如果这是真的,那么我可以把它作为一个条件,比如说,显示一个链接:

<? 
  $cash1 = form.field.not-yet-sumbitted.cash
 if( $cash1 != "") {
   echo "http://examplesite.com";
 }
?>

我曾尝试在javascript中使用onchange事件以某种方式将"cash"变量带到内存中,然后一旦完成,以某种方式让PHP变量拾取它,但这不会启动。

由于您将表单作为POST提交给p_financials_php,因此在该文件上,您可以简单地从全局$_POST数组中获取任何字段的值。例如

$field1 = $_POST['field1'];

然后您可以简单地在该字段上添加一个复选框。如果你只想验证东西然后提交表单,你可以在javascript端添加验证。

您的目标是最好通过JavaScript中的AJAX调用来实现,因为它们具有客户端性质和功能。PHP是一种服务器端语言,这意味着如果不提交<form>(至少是提交给它自己),PHP就无法解释它

一种常见的方法是实现jQuery库的$.ajax()功能,有效地允许您将POSTGET信息发送到PHP脚本,而无需离开页面或提交表单本身,例如通过onclick调用。

示例可在此处的文档中找到(位于文档底部):http://api.jquery.com/jquery.ajax/.