检查表单值以用作条件而无需提交表单

时间:2016-03-22 02:37:33

标签: javascript php jquery html forms

我一直在使用这段代码:

<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(或?),我可以阅读&#39;表单字段,检查它是否有值,并使其成为条件语句的变量,无需提交并发布到数据库。

例如,让我们说我想要&#34;现金&#34;如果值为true,那么我可以将其作为一个条件,让我们说,显示一个链接:

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

我尝试在javascript中使用onchange事件以某种方式带来&#34;现金&#34;变量进入内存,然后一旦完成,不知何故有PHP变量捡起它,但这并不会激发。

2 个答案:

答案 0 :(得分:0)

由于您将表单作为 POST 提交到 p_financials_s.php ,因此您可以在该文件中轻松获取全局 $ _ POST中任何字段的值数组。 e.g。

$field1 = $_POST['field1'];

然后您只需添加对该字段的检查即可。如果您只想验证事物然后提交表单,可以在javascript端添加验证。

答案 1 :(得分:0)

由于其客户端的性质和能力,您最好通过JavaScript中的AJAX调用来实现目标。 PHP是一种服务器端语言,这意味着如果不提交<form>(至少本身),PHP就无法解释它。

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

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