如何根据<select> HTML更改PHP变量

时间:2019-11-25 10:29:53

标签: php

我目前正在使用PHP和HTML进行自动签名。

变量“ layout”是我要更改的变量。它包含HTML签名的结构(背景,徽标,结构)。

$layout = file_get_contents('./SIG/SAELEN.html', FILE_USE_INCLUDE_PATH);
$layout1 = file_get_contents('./SIG/GUIL.html', FILE_USE_INCLUDE_PATH);

结构应根据以下内容进行更改:

<select class="form-control" id="sel1" id="Name" name="Sender[department]">
   <option value="1">Choix1</option>
   <option value="2">Choix2</option>
   <option value="3">Choix3</option>
   <option value="4">Choix4</option>
   <option value="5">Choix5</option>
   <option value="6">Choix6</option>
</select>

我希望根据用户的选择更改$layout的值,而不必刷新页面。

感谢您抽出宝贵的时间阅读,很期待听到您的建议。

3 个答案:

答案 0 :(得分:1)

  

我们无法从javascript更改PHP变量。 php是后端和js   是前端。

解决方案是在用户更改选择输入时调用ajax调用

您可以将两种布局都存储在两个js变量中,并在用户更改选择输入时使用它们

答案 1 :(得分:1)

不刷新页面就无法更改php变量。但是根据您的要求,您可以使用技术来实现您的目标。我建议使用ajax调用下面的解决方案。

index.php

 <?php?>
<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
            $('#sel1').change(function(){
                var getValue = $(this).val();
               // alert(getValue);
                //Ajax call
                $.post('do.php', { selectedValue: getValue }, function(data){
                    //alert('check response value:  '+data);
                });
            });
        });
        </script>
    </head>
<body>
    <select class="form-control" id="sel1" id="Name" name="Sender[department]">
       <option value="1">Choix1</option>
       <option value="2">Choix2</option>
       <option value="3">Choix3</option>
       <option value="4">Choix4</option>
       <option value="5">Choix5</option>
       <option value="6">Choix6</option>
    </select>

</body>
</html>

do.php

<?php
// get posted value
if ($_POST['selectedValue']){ 
     //echo "posted--". $_POST['selectedValue'];
    // do your logic here
    //$layout = file_get_contents('./SIG/SAELEN.html', FILE_USE_INCLUDE_PATH);
    //$layout1 = file_get_contents('./SIG/GUIL.html', FILE_USE_INCLUDE_PATH);
}
?>

我希望您可以通过这种方式获得想法。

答案 2 :(得分:0)

   $layout = file_get_contents('./SIG/1.html', FILE_USE_INCLUDE_PATH);


 $layout1 = file_get_contents('./SIG/2.html', FILE_USE_INCLUDE_PATH);
   $layout2 = file_get_contents('./SIG/3.html', FILE_USE_INCLUDE_PATH);
   $layout3 = file_get_contents('./SIG/4.html', FILE_USE_INCLUDE_PATH);


if(isset($_POST['select']))

{
    if($_POST['select'] == 'value2')
    {
        $layout = $layout1;

    }
    if($_POST['select'] == 'value3') {
    $layout = $layout2;
    }

    if($_POST['select'] == 'value4') {
    $layout = $layout3;
                                     } 

}