2016-11-30 74 views
1

我需要翻譯值這就是爲什麼我寫了一個函數,我需要將角度值傳遞到該PHP函數。需要將角度js值傳遞給php函數嗎?

如PHP函數是

<?php bn_translate(); ?> 

和角JS值

{{ result.min_tenure }} 

我想這兩種方式,但什麼都沒有改變

<?php print bn_translate("{{ result.min_tenure }}"); ?> 
and 
{{ <?php print bn_translate("result.min_tenure") }}; ?> 

或如果我試圖測試值,它是成功的翻譯

<?php print bn_translate("5"); ?> or <?php print bn_translate(5); ?> 

是否有可能通過值到PHP功能正常工作?

+0

使用Ajax的反式 –

+1

可能的複製[通行證angularjs值PHP變量(HTTP:// stackoverflow.com/questions/31637243/pass-angularjs-value-to-php-variable) –

+0

您可能想使用https://github.com/angular-translate/angular-translate而不是在服務器上這樣做 – Maxime

回答

0

PHP先運行,然後角js。因此,您試圖將未來的變量(angular js)傳遞給過去調用的函數(PHP)。

你基本上是問PHP執行以下操作:

<?php bn_translate("null"); ?> 

的角度JS值尚不存在。

做你想做的唯一的方法是通過AJAX發送變量到一個php腳本的功能。

-1

可以將值分配給所述PHP變量,並傳遞給PHP函數

<?php 
    $value = "{{ result.min_tenure }}"; 
?> 
+0

這沒有用。我在帖子前嘗試過 – Roni

0

你可以使用一個AJAX調用從前端將值傳遞給後端,通常使用像JSON格式。但是,對於翻譯等內容,如果可能的話,應儘量避免往返服務器。好的解決方案將使用angular-gettextangular-translate

控制器注入$ HTTP

$http({ 
    url: "script.php", 
    method: "POST", 
    data: { 
     data: result.min_tenure 
    } 
}).success(function(translated) { 
    console.log(translated); 
}); 

的script.php

<?php 
$request = json_decode($_POST['data']); 
$text = $request->data 
$translated = bn_translate($text) 
echo (json_encode($text));