如何使用 `id` 而不是 `name` POST HTML 表单
How to POST HTML form using `id` instead of `name`
下面这段代码是按名称获取元素,我要改成按ID获取元素,如何实现?
<?
if($_SERVER["REQUEST_METHOD"] == "POST" && array_key_exists("calculateFormSubmit", $_POST)) {
$connectionData = ["server" => "","user" => "","pass" => "","database" => ""];
$db = null;
try {
$db = new PDO("mysql:host=" . $connectionData["server"] . ";dbname=" . $connectionData["database"], $connectionData["user"], $connectionData["pass"]);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo $e->getMessage();
}
$dateFrom = (int)$_POST["YearBox"] . "-" . (int)$_POST["gmonth"] . "-" . (int)$_POST["gday1"];
$dateTo = (int)$_POST["gyear2"] . "-" . (int)$_POST["gmonth2"] . "-" . (int)$_POST["gday2"];
$stmt = $db->prepare("SELECT SUM(rialamount) as sum_result FROM problem_tbl WHERE opening_date BETWEEN STR_TO_DATE(:date_from, '%Y-%c-%e') AND STR_TO_DATE(:date_to, '%Y-%c-%e')");
$stmt->bindValue(":date_from", $dateFrom);
$stmt->bindValue(":date_to", $dateTo);
$stmt->execute();
$userData = $stmt->fetchAll(PDO::FETCH_ASSOC);
if($userData != false) {
foreach ($userData as $idPatient) {
header('Content-Type: text/html; charset=utf-8');
echo "<p>Text Here </p>\n";
echo "<div id=\"rialamount\" style=\"text-shadow: 2px 2px 5px #0B4D09; font-size: 140%;\">\n";
echo "<b>" . [''] . "<b> - " . $idPatient["sum_result"] . "<br />";
echo "</div>\n";
}
}
if($db !== null) {
$db = null;
}
}
?>
在 $dateFrom 和 $dateTo 中将通过 class 名称获取元素,如何更改它们以获取元素按 ID ??
提前致谢
默认情况下,HTML form
提交以元素的 name
属性为关键字的值。
您可以使用 JavaScript 修改此行为,方法是编写一个函数来处理表单的 onsubmit
操作并自行执行提交。
- 当用户点击
<input type="submit">
或以其他方式提交表单时,submit
事件被触发
- 如果您有一个 JavaScript 函数设置为处理
onsubmit
,它将在此时被调用
- 然后您的函数应该创建一个 HTTP POST 请求到所需的服务器资源(即在表单的
action
属性中指定并包含问题中的代码的资源)。随此请求发送的 POST 数据可以输入 ID 或您希望使用的任何其他标识符。
- 然后您的函数应该取消由浏览器发起的表单提交(例如
return false
)
你不能这样做,我在某处读到我们可以在 HTML 4.01 之后仅通过它们的名称来控制元素。
这里,前面的post也支持。
previous post
但是,如果你真的想通过id访问它,那么你必须使用ajax调用来向服务器发送数据。在 ajax 调用中,您可以通过其 Id 访问元素。
您无法通过 ID 在 php 中检索数据,它适用于名称..因此您需要更改
PHP
<form method="POST" action="nextpage.php" name="myform" id="myform">
<input type="text" id="rout_markers" name="rout_markers"/>
<input type="hidden" name="someNewName" id="someNewName" value="" />
<input type="submit" id="send-btn" class="button" value="SEND NOW" onclick="submitform()" />
</form>
jQuery
$("form").bind('submit',function(e){
e.preventDefault();
var hiddenData=$("input[name=rout_markers]").val();
// or var hiddenData=jQuery('#rout_markers').val();
$("input[type=hidden][name=someNewName]").val(hiddenData);
});
nextpage.php
通过以下方式检索数据
$_POST['someNewName'];
更新
在提交按钮中设置 onclick=submitform()
并分配 name
和 id
属性以形成并写入此
javascript
<script type="text/javascript">
function submitform()
{
var hiddenData = document.getElementById('rout_markers').value;
document.getElementById('someNewName').value = hiddenData;
document.myform.submit();
}
</script>
有关详细信息,请单击 getting values from ID instead of name
下面这段代码是按名称获取元素,我要改成按ID获取元素,如何实现?
<?
if($_SERVER["REQUEST_METHOD"] == "POST" && array_key_exists("calculateFormSubmit", $_POST)) {
$connectionData = ["server" => "","user" => "","pass" => "","database" => ""];
$db = null;
try {
$db = new PDO("mysql:host=" . $connectionData["server"] . ";dbname=" . $connectionData["database"], $connectionData["user"], $connectionData["pass"]);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo $e->getMessage();
}
$dateFrom = (int)$_POST["YearBox"] . "-" . (int)$_POST["gmonth"] . "-" . (int)$_POST["gday1"];
$dateTo = (int)$_POST["gyear2"] . "-" . (int)$_POST["gmonth2"] . "-" . (int)$_POST["gday2"];
$stmt = $db->prepare("SELECT SUM(rialamount) as sum_result FROM problem_tbl WHERE opening_date BETWEEN STR_TO_DATE(:date_from, '%Y-%c-%e') AND STR_TO_DATE(:date_to, '%Y-%c-%e')");
$stmt->bindValue(":date_from", $dateFrom);
$stmt->bindValue(":date_to", $dateTo);
$stmt->execute();
$userData = $stmt->fetchAll(PDO::FETCH_ASSOC);
if($userData != false) {
foreach ($userData as $idPatient) {
header('Content-Type: text/html; charset=utf-8');
echo "<p>Text Here </p>\n";
echo "<div id=\"rialamount\" style=\"text-shadow: 2px 2px 5px #0B4D09; font-size: 140%;\">\n";
echo "<b>" . [''] . "<b> - " . $idPatient["sum_result"] . "<br />";
echo "</div>\n";
}
}
if($db !== null) {
$db = null;
}
}
?>
在 $dateFrom 和 $dateTo 中将通过 class 名称获取元素,如何更改它们以获取元素按 ID ??
提前致谢
默认情况下,HTML form
提交以元素的 name
属性为关键字的值。
您可以使用 JavaScript 修改此行为,方法是编写一个函数来处理表单的 onsubmit
操作并自行执行提交。
- 当用户点击
<input type="submit">
或以其他方式提交表单时,submit
事件被触发 - 如果您有一个 JavaScript 函数设置为处理
onsubmit
,它将在此时被调用 - 然后您的函数应该创建一个 HTTP POST 请求到所需的服务器资源(即在表单的
action
属性中指定并包含问题中的代码的资源)。随此请求发送的 POST 数据可以输入 ID 或您希望使用的任何其他标识符。 - 然后您的函数应该取消由浏览器发起的表单提交(例如
return false
)
你不能这样做,我在某处读到我们可以在 HTML 4.01 之后仅通过它们的名称来控制元素。
这里,前面的post也支持。 previous post
但是,如果你真的想通过id访问它,那么你必须使用ajax调用来向服务器发送数据。在 ajax 调用中,您可以通过其 Id 访问元素。
您无法通过 ID 在 php 中检索数据,它适用于名称..因此您需要更改
PHP
<form method="POST" action="nextpage.php" name="myform" id="myform">
<input type="text" id="rout_markers" name="rout_markers"/>
<input type="hidden" name="someNewName" id="someNewName" value="" />
<input type="submit" id="send-btn" class="button" value="SEND NOW" onclick="submitform()" />
</form>
jQuery
$("form").bind('submit',function(e){
e.preventDefault();
var hiddenData=$("input[name=rout_markers]").val();
// or var hiddenData=jQuery('#rout_markers').val();
$("input[type=hidden][name=someNewName]").val(hiddenData);
});
nextpage.php
通过以下方式检索数据
$_POST['someNewName'];
更新
在提交按钮中设置 onclick=submitform()
并分配 name
和 id
属性以形成并写入此
javascript
<script type="text/javascript">
function submitform()
{
var hiddenData = document.getElementById('rout_markers').value;
document.getElementById('someNewName').value = hiddenData;
document.myform.submit();
}
</script>
有关详细信息,请单击 getting values from ID instead of name