Прежде всего, пожалуйста, дайте мне знать, если мне нужно сформулировать это лучше, чтобы иметь больше смысла и спасибо за чтение.Динамически сгенерировать кнопку отправки Javascript
В настоящее время я работаю над веб-страницей, которая создает большое количество элементов формы, где идентификатор, имя и значение каждого элемента формы зависит от предыдущего выбора пользователя, как в следующем примере, где id, name и value зависит от значения $ независимо от обр содержит в то время,
?>
<div id='<?= $arr['param_name'] ?>Div' class='dynamicDiv'>
<b><?= $arr['param_desc'] ?></b>
<br/>
<input type='Text' id='<?= $arr['param_name'] ?>'
name='<?= $arr['param_name'] ?>'
value='<?= $arr['default_val'] ?>' class='dynamicTextBox'>
</div>
<?php
Эта часть в основном хорошо, но есть ряд кнопок отправки, которые так же генерируются динамически, но жестко закодированы. JQuery для этих кнопок ввода жестко закодировано, как показано в следующем примере,
<input type='Submit' value=' Query Data' name='funcSearch'
onclick="queryAngle(('<?php echo $result[0]['query_id'] ?>'),('<?php echo $_GET['schema'] ?>'),
($('#firstFrame').val()), ($('#lastFrame').val()),($('#skip').val()), ($('#atomID1').val()),
($('#atomID2').val()), ($('#atomID3').val())); false;" class='dynamicParamButton'><br/><br/>
Будучи, что существуют дюжины из них кнопки отправки, каждый жестко закодированы, и большинство, по крайней мере в два раза больше этот здесь, он довольно усложняется довольно быстро. Я хотел бы сделать какой-то объектно-ориентированный подход, чтобы сделать эту вещь удобной, но нужно немного помочь выяснить, с чего начать. Есть ли хорошее место для начала? Может быть, я должен сгенерировать кнопку отправки в виде строки в PHP, или есть некоторые функции jQuery для решения этой проблемы?
Для полноты, кнопка представить в примере вставленного выше посылает значения следующей функции в файл JavaScript,
function queryAngle(query_id, schema, firstFrame, lastFrame, frameSkip, atomID1, atomID2, atomID3) {
if (query_id === "") {
$("#QueryInfo").html("<p>Error Please enter valid arguments</p>");
return;
}
$("#waiting").show(500);
$("#interface").hide(0);
$.post('./function_files/angleFunction.php',
{
query_id: query_id,
simschema: schema,
firstFrame: firstFrame,
lastFrame: lastFrame,
frameSkip: frameSkip,
atomID1: atomID1,
atomID2: atomID2,
atomID3: atomID3
},
function (data) {
showResultReady(data);
});
}
Но есть дюжины этих функций тоже, как queryAngle показано здесь , но также queryDensity, queryTorsion и т. д. Все они делают одно и то же: передайте значения в файл, angleFunction.php, densityFunction.php, torsionFunction.php, соответственно, и было бы здорово иметь способ привнести некоторую абстракцию или объектно-ориентированную перспективу в эту , Спасибо за любую помощь или идеи.
Вы задумывались над инфраструктурой привязки данных, например https://docs.angularjs.org/guide/databinding? – kuanb
Это вопрос вкуса, но я стараюсь использовать [Slim framework] (http://www.slimframework.com/) для таких проектов. Вы можете использовать несколько контроллеров и даже сделать из них какую-то иерархию и промежуточное ПО, так что URL-адрес для создания кнопки будет sth. подобный '/ type1/угол45/цветный/маленький'. Но опять же, это вопрос вкуса. – Jan