2014-02-05 85 views
0

我有一个小的联系表单,我想要求用户计算并输入正确的值,以防止垃圾邮件。现在,当发送按钮被点击时,我激活一个php脚本,在那里我改变了计算值。我希望回应这些价值观,并在成功和失败的情况下将它们显示为新的占位符。jQuery的php变量回声不工作

$("#send_button").click(function() { 

     var url = "contact.php"; // the script where you handle the form input. 

     $.ajax({ 
       type: "POST", 
       url: url, 
       data: $("#contact_form").serialize(), // serializes the form's elements. 
       success: function(data) 
       { 
        var txt = "<?php echo 'Spam protection: Calculate ($first_num + $second_num) x $multiplier';?>"; 
        $("#form_info_label").css('color','#0ed68d');         
        $("#form_info_label").text(data); 
        $("#user_answer").attr("placeholder",txt); 

       }, 
       error: function(data) { 

        var txt = "<?php echo 'Spam protection: Calculate ($first_num + $second_num) x $multiplier';?>"; 
        alert(txt); 
        $("#form_info_label").css('color','#f2275e'); 
        $("#form_info_label").text("Error. Please try again."); 
        $("#user_answer").removeAttr('value'); 
        $("#user_answer").attr("placeholder",txt); 

       } 

      }); 

     return false; // avoid to execute the actual submit of the form. 
    }); 

但是我的占位符最终不会将它解释为php代码,而只是简单地复制文本。所以,我的占位符,然后结束显示:

<?php echo 'Spam protection: Calculate ($first_num + $second_num) x $multiplier';?> 

回答

1

我结束了从PHP与我期望的值返回JSON编码数组回的javascript和解析响应那里。

0

你需要的PHP标签

var txt = "<?php echo 'Spam protection: Calculate ($first_num + $second_num) x $multiplier'; ?>"; 

你确实有正确的错误处理程序,所以你可能只是忘了,现在你已经编辑包括他们的问题?

如果您有PHP标签,但仍未解析,则JavaScript所在的文件不会被PHP解析。

+0

不,不好意思,我的错误,那只是一个测试案例。我实际上使用错误处理程序来测试。 –

+0

如果输出PHP标签,该文件不会被PHP解析,这是唯一可能的解释。 – adeneo

+0

好的,我能做些什么? –

0

记得在comuputers上使用*来代替乘法的东西,而不是x。

它也不清楚,你的函数“Calculate($ param)”是做什么的,但通常你不需要一个函数来添加一个变量到另一个。但括号仍然需要...

+0

我不认为这是一个函数,而是一个用户需要计算变量中给出的两个值的问题,作为一种“检查人类”的问题。 – adeneo

+0

正如 - >'垃圾邮件防护:计算(3 + 2)x 2' – adeneo

+0

是的,adeneo是正确的......这是用户将要面对的问题。回声中绝对没有php,但变量。 –

0

在我的情况下,PHP标签也没有被js解释。我发现了一个解决方案是:

在我的PHP文件中,我定义在不可见的div变量:

?> 
<div id="first_num" style="display: none"> 
    <?php echo $first_num; ?> 
    </div> 
<?php 

在jQuery的文件,我读了DIV值是这样的:

var first_num= $("#first_num").text().trim();