2016-05-28 6 views
-3

Я хочу опубликовать свое действие в соответствии с выборами записей. Однако мой код не работает. Как я могу сделать? Спасибо.Php Сообщение Действие

<form action=<?php echo $filename; ?> method="post"> 
<br/> 
    <input type="submit" name="select" value="A" onclick="selecta()" /> 
    <br/> 
    <input type="submit" name="select" value="B" onclick="selectb()" /> 
    <br/> 
    <input type="submit" name="select" value="C" onclick="selectc()" /> 
    </form> 
    <?php 
     function selecta(){ 
      $filename = "a.php"; 
     } 
     function selectb(){ 
      $filename = "b.php"; 
     } 
     function selectc(){ 
      $filename = "c.php"; 
     } 
     ?> 
+0

Вы смешиваете клиентский код с кодом на стороне сервера. В браузере нет таких функций, как 'selecta()', 'selectb()' или 'selectc()'. Вероятно, консоль JavaScript дает вам точную ошибку, что функции не найдены. Не совсем понятно, что вы пытаетесь выполнить, но вы должны сделать это либо на стороне клиента, либо на стороне сервера, эти два не могут смешиваться. – David

+0

Моя проблема в том, что в действии формы не принимается значение имени файла. – Leo

+0

Да, это потому, что '$ filename' не * имеет * значение, когда этот код выполняется. Поскольку серверный код выполняется на сервере, * до * страница отправляется в браузер. – David

ответ

2

Вы не можете использовать PHP для динамического изменения HTML. Использование JavaScript:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
<form action="#" method="post" id="myform"> 
<br/><input type="submit" name="select" value="A" onclick="selecta()"/> 
<br/><input type="submit" name="select" value="B" onclick="selectb()"/> 
<br/><input type="submit" name="select" value="C" onclick="selectc()"/> 
</form> 
<script> 
var action = 'a.php'; 
$(function(){ 
    $('#myform').submit(function(){ 
     $(this).attr('action', action); 
    }); 
}); 
function selecta() { 
    action = 'a.php'; 
} 
function selectb() { 
    action = 'b.php'; 
} 
function selectc() { 
    action = 'c.php'; 
} 
</script> 
0

Я предполагаю, что вы хотите этот код на стороне сервера, так как вы используете PHP

<?php 

    $filename = ''; 


    $files = 
    [ 
     'A' => 'a', 
     'B' => 'b', 
     'C' => 'c', 
    ] 

    if(!empty($_POST['select'])) 
    { 
     if(isset($files[ $_POST['select'] ])) 
     { 
      $filename = $files[ $_POST['select'] ].'.php'; 
     } 
    } 

    ?> 

    <form action= "<?php echo $filename; ?>" method="post"> <br/> 

     <input type="submit" name="select" value="A"/> <br/> 
     <input type="submit" name="select" value="B"/> <br/> 
     <input type="submit" name="select" value="C" /> 

    </form> 
-1

Route :: получить ('anyString', 'UserController @ профиль');

  • Когда вы набираете anyString по URL-адресу, он вызывает метод UserController Profile .

 Смежные вопросы

  • Нет связанных вопросов^_^