2014-02-05 80 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();