jQuery php变量echo无法正常工作

时间:2014-02-05 22:31:18

标签: javascript 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';?>

5 个答案:

答案 0 :(得分:1)

我最终返回一个json编码的数组,将我想要的值从php返回到javascript并在那里解析响应。

答案 1 :(得分:0)

你需要PHP标签

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

你真的在错误处理程序中拥有它,所以你可能只是忘了,现在你已经编辑了问题以包含它们?

如果你有PHP标签,并且它仍然没有被解析,那么javascript所在的文件不会被PHP解析。

答案 2 :(得分:0)

请记住,在comuputers上使用*表示乘法,而不是x。

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

答案 3 :(得分: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();

答案 4 :(得分:-1)

首先,adeneo已经说过:.js文件不会被PHP解析。

其次PHP变量在单引号字符串中出现时不会被扩展。 http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single

您应该使用双引号或

echo 'Spam protection: Calculate ('.$first_num.' + '.$second_num.') x '.$multiplier;