El reemplazo de cadenas funciona bien para mí, pero ¿cómo devolver el texto de la etiqueta del último botón de opción al texto original?
function myFunction(id) { var str = document.getElementById(id).innerHTML; var res = str.replace("{#var1#}", "<input type='text' name='var1' maxlength='30' size='30'>") .replace("{#var2#}", "<input type='text' name='var2' maxlength='30' size='30'>") .replace("{#var3#}", "<input type='text' name='var3' maxlength='30' size='30'>") .replace("{#var4#}", "<input type='text' name='var4' maxlength='30' size='30'>"); document.getElementById(id).innerHTML = res; }Aquí está mi PHP, código HTML:
<tr> <td><input onchange="myFunction('<?php echo $row['id']; ?>')" type="radio" name="id" value="<?php echo $row['id']; ?>" required></td> <td><b><?php echo htmlspecialchars($row['template_name']); ?></b></td> <td id="<?php echo $row['id']; ?>"><?php echo str_replace("\n","<br />",htmlspecialchars($row['template_content'])); ?></td> </tr>Creo que debería agregar un atributo adicional en la entrada (puede ser data-origin o algo así). Por ejemplo:
<input value=""> <div class="display" data-origin="xxxx"></div>Y luego haga que una función active el cambio en la entrada:
$(input).onchange(() => { $(display).innerHtml = $(display).attr(data-origin) }); //===continue your stuff====