как я могу передать динамически генерировать значение поля php на той же странице - PullRequest
1 голос
/ 08 февраля 2020
  1. Я динамически генерирую кнопку со значениями.
  2. Я использовал массив в качестве имени также внутри поля кнопки, но не могу получить его значение.
  3. Мне нужно получить значение каждой кнопки на той же странице, используя php после отправки формы. Вот мой код.

$('#left_indicator').on('change', function(event) {
    event.preventDefault();
    /* Act on the event */
    if ($(this).val()=='sma') {
      $("#left_period_guider").html('(period,offset)');
    }else if ($(this).val()=='ema') {
      $("#left_period_guider").html('(close,period,offset)');
    }
    
  });
  $('#right_indicator').on('change', function(event) {
    event.preventDefault();
    /* Act on the event */
    if ($(this).val()=='sma') {
      $("#right_period_guider").html('(period,offset)');
    }else if ($(this).val()=='ema') {
      $("#right_period_guider").html('(close,period,offset)');
    }
    
  });
/*  -----------------------------------*/
	var data='';
var btnid=0;
function generateBtn(data){
    btnid++;
    var btns='<button type="button" id="generated'+btnid+'" name="generated[]'+btnid+'" value="" data-id="'+btnid+'">'+data+'</button><button type="button" id="removethis" class="removethis" data-id="'+btnid+'">removethis</button>';
    $('#container').append(btns);
}
function check_inputs() {
    var i=0;
    //validation to check for empty inputs
    //Same loop used to generate valid Button' Data
    
    data='';
    //we reset Data
    $('.chk').each(function(){
        
        if( $(this).val() === "" ){
          $(this).css({'border-color':'red','border-size':'3px'}); 
        } else{
            $(this).css({'border-color':'green','border-size':'3px'});
            if($(this).is('input')){
                data+='('+$(this).val()+')';
            } else {
                data+=' '+$(this).val();
            }
            
            i++;
        }
    });
    if(i==$('.chk').length){
    //We gernerate the button
    generateBtn(data);
    } else{
        return;
    }
}

//Dynamically generated buttons are non-Dom, so we base selction on the parent container
//Data-id attribute is used to match targeted buttons
$("#container").on('click','.removethis', function() {
        $('button[data-id='+$(this).data('id')+']').remove();
});    
$("#generateButton").on('click', function() {  
    //Because we can remove buttons
    //We count generated buttons before generating more than 5
    if($("[id^=generated]").length<10){
    check_inputs();
    }
});
<?php print_r($_POST); ?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>Demo</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
	<link rel="stylesheet" href="">
</head>
<body>
	<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" accept-charset="utf-8">
    <div id="container">
  <select name="left_indicator" id="left_indicator" class="chk">
      <option value="">select</option>
      <option value="sma">sma</option>
      <option value="ema">ema</option>
    </select>
    <input type="text" name="left_PeriodAndOffset" id="left_PeriodAndOffset" placeholder="e.g (10.2)" class="chk">
    <div id="left_period_guider"></div>
    <select name="comparator" id="comparator" class="chk">
      <option value="">select</option>
      <option value="=">=</option>
      <option value="<"><</option>
    </select>


    <select name="right_indicator" id="right_indicator" class="chk">
      <option value="">select</option>
      <option value="sma">sma</option>
      <option value="ema">ema</option>
    </select>
    <input type="text" name="right_PeriodAndOffset" id="right_PeriodAndOffset" placeholder="e.g (10.2)" class="chk">
    <div id="right_period_guider"></div>

    <button type="button" id="generateButton" name="generateButton">click to generate button upto 5 with remove button</button>
    <hr>
</div>
<button type="submit">click me</button>
  </form>
</body>
</html>

Как вы видите, я выбираю значение из выпадающего списка и генерирую поле кнопки со значением, нажимая кнопку создания. Мне просто нужно сгенерированные значения кнопок на той же странице после отправки формы, используя php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...