• Изменение html в зависимости от radio?

    @2bllk
    Почему бы Вам этим на сервере не заниматься?
    <form target="_blank" method="POST" action="../index.php">
        <input type="radio" name="paymentType" value="PC">
        <input type="radio" name="paymentType" value="AC">
        <input type="radio" name="paymentType" value="MC">
    </form>

    index.php
    if (isset($_POST['paymentType'])){
        if ($_POST['paymentType'] === 'PC')
            header('Location: ../page/sds/3')
            // ...
    }


    это все понятно но мне нужно изменить форму до её отправки!!!
    Тоесть в зависимости от выбранного radio форма будет уходить на другой сайт


    Второй вариант:
    <html>
    <head>
    	<title>Document</title>
    </head>
    <body>
    	<form target="_blank" method="POST" action="../index.php" name="form">
    	    <input type="radio" name="paymentType" value="PC">
    	    <input type="radio" name="paymentType" value="AC">
    	    <input type="radio" name="paymentType" value="MC">
    	</form>
    
    	<script type="text/javascript">
    		document.form.onchange = () => {
    			switch ((new FormData(document.form)).get('paymentType')){
    				case 'PC':
    					document.form.action = '/page/sds/3';
    				break;
    				case 'AC':
    					document.form.action = '/page/sds/4';
    				break;
    				case 'MC':
    					document.form.action = '/page/sds/5';
    				break;
    			}
    		}
    	</script>
    </body>
    </html>
    Ответ написан
    9 комментариев
  • Изменение html в зависимости от radio?

    @NinjaNickName
    Web разработчик
    Если обработчик формы на стороне php:

    C jQuery:
    $.ajax({
      url: "some.php", // урл обработчика
      success: function(data){
        console.log( "Прибыли данные: " + data ); // получили данные обработчика и вывели в консоль 
        $("#form1").attr("action", data); // для формы form1 меняем атрибут action на data который получили из обработчика формы some.php
      }
    });


    id у формы не забудьте прописать
    <form id="form1" target="_blank" method="POST" action="../page1">


    Или решение без бекенда:

    $('#form1 input').on('change', function() {
       console.log($('input[name=radioName]:checked', '#myForm').val()); // выводим в консоль выбранное значение 
    
    switch ($('input[name=radioName]:checked', '#myForm').val()) {
      case 'PC':
        $("#form1").attr("action", '../page/sds/3'); 
        break;
      case 'AC':
       $("#form1").attr("action", '../page/sds/2'); 
        break;
      case 'MC':
        $("#form1").attr("action", '../page/3');  
        break;
    }
    });
    Ответ написан
    2 комментария