从Javascript调用PHP函数然后更改表单操作

时间:2014-09-24 07:25:59

标签: javascript php jquery

我正在尝试在HTML中更改表单操作,然后使用javascript提交。

条件是PHP。

如果有人可以帮助我,我需要帮助。

这是我的PHP函数: -

<?php
error_reporting(0);

if(isset($_POST['email'])){
    $email=$_POST['email'];
   if(!empty($email)) {
       $chrono = 0;
    } else {
       $chrono = 1;
    }
}
?>

PHP的动机是检查空电子邮件条目。

这是javascript函数: -

<script type="text/javascript"> 
    function fireform(val){ 
    // missing codes
      document.forms["demoform"].action=val; 
      document.forms["demoform"].submit(); 
    } 
    // missing codes    
</script>

HTML: -

<form name="demoform" action="">        
<input type ="text" name="name" id="name">             
<input type="hidden" name="buttonpressed" id="buttonpressed"> 
<input type="button" value="submit B" onclick="fireform('b')">

我想以某种方式执行此操作,当用户输入空电子邮件时,PHP会将其读作chrono = 0。 然后转到javascript,如果chrono等于0,则操作将保持为空。

如果chrono = 1,则javascript将更改表单的操作并提交。

我需要帮助谢谢。

2 个答案:

答案 0 :(得分:1)

您的流程尚不清楚:您似乎想要从PHP更改表单操作,但在表单提交后会触发PHP。所以你的流程中有一些奇怪的东西。您的标记中似乎也没有名为电子邮件的字段。添加它(或重命名字段name):

<input type="text" name="email" id="email">

尽管如此,有一个空行动意味着表格将被提交给页面本身。

您可能需要的是电子邮件字段的客户端验证。在fireform() JavaScript函数中,只需添加对电子邮件字段的检查:

function fireform(val){
    if (document.forms["demoform"].email.value.length > 0){
        document.forms["demoform"].action = val; 
        document.forms["demoform"].submit();
    }
}

这应该足以满足您的需求。

答案 1 :(得分:0)

我建议在javascript中检查电子邮件字段(为空),当您设置了正确的操作时,请在javascript中提交表单。

检查字段:

$('#<enter id of field>').val();

更新动作:

$('form').attr('action', 'Enter your updatet action here');

提交表格:

http://api.jquery.com/submit/