使用JavaScript函数作为PHP函数的参数

时间:2016-01-04 09:04:22

标签: javascript php

我想将JavaScript函数的结果用于PHP函数的参数。

这将生成一个随机ID:

  function generate_id()
    {
        var text = "";
        var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

        for( var i=0; i < 5; i++ )
            text += possible.charAt(Math.floor(Math.random() * possible.length));

        return text;
    }

下面的函数的第5个参数应该包含JS函数的结果。

$anrede_frau = $html_helper->form_input("radio", "friend_anrede[]", array("anrede" => array("Frau", "Madame", "Signora")), "input_field_left", 'anrede_<script>generate_id()</script>', 'left');
$anrede_herr = $html_helper->form_input("radio", "friend_anrede[]", array("anrede" => array("Herr", "Monsieur", "Signor")), "input_field_left", 'anrede_<script>generate_id()</script>');

我尝试使用类似anrede_<script>generate_id()</script>的内容,但这不起作用。我怎样才能解决这个问题?

修改 我们的想法是生成一个带有随机ID的新输入字段。只要单击ID为#addMore的按钮,就会发生这种情况。这就是我这样做的方式:

<script>
$(function() {
  $("#addMore").click(function(e) {
         e.preventDefault();
         $(".form_area").append('<br><br><?= $html_helper->form_input("radio", "friend_anrede[]", array("anrede" => array("Frau", "Madame", "Signora")), "input_field_left", 'anrede_frau_ + generate_id() + '); ?>');
         $(".form_area").append('<?= $html_helper->form_input("radio", "friend_anrede[]", array("anrede" => array("Herr", "Monsieur", "Signor")), "input_field_left", 'anrede_herr_ + generate_id() + '); ?>');
         $(".form_area").append('<?= $html_helper->form_input("text", "friend_vorname[]", array("vorname" => array("Vorname", "Prénom", "Nome")), "input_field_left"); ?>');
         $(".form_area").append('<?= $html_helper->form_input("text", "friend_name[]", array("name" => array("Name", "Nom", "Cognome")), "input_field_right"); ?>');
         $(".form_area").append('<?= $html_helper->form_input("text", "friend_strasse_nr[]", array("strasse" => array("Strasse / Nr.", "Rue/n°", "Indirizzo"))); ?>');
         $(".form_area").append('<?= $html_helper->form_input("text", "friend_plz_ort[]", array("ort" => array("PLZ / Ort", "NPA / localité", "NPA / Località"))); ?>');
         $(".form_area").append('<p class="de">Bitte vollständig ausfüllen.</p><p class="fr">Veuillez remplir complètement.</p><p class="it">Si prega di compilare integralmente.</p>');
      });
    });
</script>

无论是使用PHP还是使用JavaScript,我都需要能够使用无线电类型为我的输入字段添加ID。我希望这会使我的问题更加清晰。

1 个答案:

答案 0 :(得分:0)

编码时需要记住的重要事项是在运行Javascript代码之前在服务器上编译PHP。这是两个独立的世界,除了通过AJAX之外不能相互通信。

由于您的函数在PHP中编写起来并不困难,您可以创建一个与Javascript函数相同的PHP函数,并使用AJAX获取此结果。