我目前正在使用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
的值,而不必刷新页面。
感谢您抽出宝贵的时间阅读,很期待听到您的建议。
答案 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;
}
}