- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小脚本,由 2 个选择字段和 1 个输入字段组成。第一个选择框从一个表中提取,一旦从中选择了一个项目,它就会使用从第二个表中提取的内容填充第二个选择框。
我需要的是第三个输入框,以显示与选择相关的下一列。
表1由 2 列组成(CAT_ID 和 CATDESC)
表2由 4 列组成(SUB_ID、CAT_ID、SUBCATDESC 和 NAME)
因此,当我在第一个下拉框中选择一个选项时,它会匹配表 1 和表 2 中的 CAT_ID,并在第二个下拉框中插入 SUBCATDESC。
但我不知道如何使用给定 CAT_ID > SUBCAT_ID 的 NAME 预填充输入字段。
希望有人能指点一下。
请注意,下面的代码已从工作环境中删除,我只是想向工作表单添加一个额外的字段。
<script type="text/javascript">
function AjaxFunction()
{
var httpxml;
try
{
// Firefox, Opera 8.0+, Safari
httpxml=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
httpxml=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
tray
{
httpxml=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
function stateck()
{
if(httpxml.readyState==4)
{
//alert(httpxml.responseText);
var myarray = JSON.parse(httpxml.responseText);
// Remove the options from 2nd dropdown list
for(j=document.contactform.subcat.options.length-1;j>=0;j--)
{
document.contactform.subcat.remove(j);
}
for (i=0;i<myarray.data.length;i++)
{
var optn = document.createElement("OPTION");
optn.text = myarray.data[i].subcategory;
optn.value = myarray.data[i].subcategory; // You can change this to subcategory
document.contactform.subcat.options.add(optn);
}
}
} // end of function stateck
var url="dd.php";
var cat_id=document.getElementById('s1').value;
url=url+"?cat_id="+cat_id;
url=url+"&sid="+Math.random();
httpxml.onreadystatechange=stateck;
//alert(url);
httpxml.open("GET",url,true);
httpxml.send(null);
}
</script>
<?php require "config.php"; ?>
<form name="contactform" method="post" action="" id="contactform">
<select name="cat" id='s1' onchange=AjaxFunction(); required>
<option value=''></option>
<?php
$sql="select * from testtable"; // Query to collect data from table
foreach ($dbo->query($sql) as $row) { ?>
<option value=<?php echo "$row[cat_id]"; ?>><?php echo "$row[category]"; ?></option>
<?php } ?>
</select>
<select name="subcat" id='s2' style="width:200px;"></select>
<input name="name" id="name" type=text required >
<input value="send email" type=submit id="sendemail">
<?php
if(isset($_POST['subcat'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = $_POST['subcat'];
$email_subject = "Request";
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if( !isset($_POST['s1']) ||
!isset($_POST['s2']) ||
!isset($_POST['name'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$s1 = $_POST['s1']; // required
$s2 = $_POST['s2']; // required
$name = $_POST['name']; // required
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "S1: ".clean_string($s1)."\n";
$email_message .= "S2: ".clean_string($s2)."\n";
$email_message .= "Name: ".clean_string($name)."\n";
// create email headers
$headers = 'From: '."test@test.com"."\r\n";
$headers .= 'Reply-To: '."test@test.com"."\r\n";
$headers .= 'CC: '."testing@test.com"."\r\n";
$headers .= 'MIME-Version: 1.0\r\n';
$headers .= 'Content-Type: text/html; charset=ISO-8859-1\r\n';
@mail($email_to, $email_subject, $email_message, $headers);
?>
<div><font color=green><b>Your request has been sent.</b></div>
<?php } ?>
</form>
最佳答案
我不是 SQL 专家,但我了解一点 PHP。也许这会有所帮助。获取两张 table 。您想要从第一个表中获取第一行作为默认值,并将其存储。然后循环第二个表,并将第一个表中的每一行与第二个表中的行进行比较。当两行中的 cat_id
相同时,将存储第二行。
将 FIRSTTABLE
和 SECONDTABLE
字符串更改为您自己的表名称
<?php
// Query to collect data table 1.
// Change the FIRSTTABLE and SECONDTABLE to your table names.
$table_1_sql = "select * from FIRSTTABLE";
$table_2_sql = "select * from SECONDTABLE";
// Query both tables
$query_table_1 = $dbo->query( $table_1_sql );
$query_table_2 = $dbo->query( $table_2_sql );
// Set the initial values to false.
$selected_row_1 = false;
$selected_row_2 = false;
// Loop over the first table to get the first row.
foreach( $query_table_1 as $row_table_1 ) {
if ( $selected_row_1 === false ) {
$selected_row_1 = $row_table_1
}
}
// Loop over the second table to get the row that matches that cat_id from the first table row.
foreach( $query_table_2 as $row_table_2 ) {
if ( $selected_row_1 !== false ) {
if ( $selected_row_1[ 'cat_id' ] === $row_table_2[ 'cat_id' ] ) {
$selected_row_2 = $row_table_2;
}
}
}
// The values from the first and second row.
// Both rows with the same 'cat_id' value.
var_dump( $selected_row_1 ); // array( 'cat_id' => SOMENUMBER, 'catdesc' => 'SOMEDESCRIPTION' );
var_dump( $selected_row_2 ); // array( 'cat_id' => SOMENUMBER, 'sub_id' => SOMENUMBER, 'catdesc' => 'SOMEDESCRIPTION', 'name' => 'SOMENAME' );
?>
现在您应该拥有填充字段所需的数据。 $selected_row_2
变量现在保存一个数组,其中包含输入字段所需的名称。
免责声明
这一切都是基于您提供的一点信息,希望对您有所帮助。如果没有,我会尽力帮助您到达您需要的地方。
关于javascript - 如何通过动态表单获取所选ID的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57510416/
我正在 csv 上使用 hadoop 来分析一些数据。我使用sql/mysql(不确定)来分析数据,现在陷入了僵局。 我花了好几个小时在谷歌上搜索,却没有找到任何相关的东西。我需要一个查询,在该查询中
我正在为 Bootstrap 网格布局的“简单”任务而苦苦挣扎。我希望在大视口(viewport)上有 4 列,然后在中型设备上有 2 列,最后在较小的设备上只有 1 列。 当我测试我的代码片段时,似
对于这个令人困惑的标题,我深表歉意,我想不出这个问题的正确措辞。相反,我只会给你背景信息和目标: 这是在一个表中,一个人可能有也可能没有多行数据,这些行可能包含相同的 activity_id 值,也可
具有 3 列的数据库表 - A int , B int , C int 我的问题是: 如何使用 Sequelize 结果找到 A > B + C const countTasks = await Ta
我在通过以下功能编写此查询时遇到问题: 首先按第 2 列 DESC 排序,然后从“不同的第 1 列”中选择 只有 Column1 是 DISTINCT 此查询没有帮助,因为它首先从第 1 列中进行选择
使用 Bootstrap 非常有趣和有帮助,目前我在创建以下需求时遇到问题。 “使用 bootstrap 在桌面上有 4 列,在平板电脑上有 2 列,在移动设备上有 1 列”谁能告诉我正确的结构 最佳
我是 R 新手,正在问一个非常基本的问题。当然,我在尝试从所提供的示例中获取指导的同时做了功课here和 here ,但无法在我的案例中实现这个想法,即可能是由于我的问题中的比较维度更大。 我的实
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个 df , delta1 delta2 0 -1 2 0 -1 0 0 0 我想知道如何分配 delt
您好,我想知道是否可以执行以下操作。显然,我已经尝试在 phpMyAdmin 中运行它,但出现错误。也许还有另一种方式来编写此查询。 SELECT * FROM eat_eat_restaurants
我有 2 个列表(标题和数据值)。我想要将数据值列 1 匹配并替换为头文件列 1,以获得与 dataValue 列 1 和标题值列 2 匹配的值 头文件 TotalLoad,M0001001 Hois
我有两个不同长度的文件,file2 是一个很大的引用文件,我从中提取文件 1 的数据。 我有一行 awk,我通常会对其进行调整以在我的文件中进行查找和替换,但它总是在同一列中进行查找和替换。 所以对于
假设我有两个表,如下所示。 create table contract( c_ID number(1) primary key, c_name varchar2(50) not
我有一个带有 varchar 列的 H2 表,其检查约束定义如下: CONSTRAINT my_constraint CHECK (varchar_field <> '') 以下插入语句失败,但当我删
这是最少量的代码,可以清楚地说明我的问题: One Two Three 前 2 个 div 应该是 2 个左列。第三个应该占据页面的其余部分。最后,我将添加选项来隐藏和
在 Azure 中的 Log Analytics 中,我为 VM Heartbeat 选择一个预定义查询,我在编辑器中运行查询正常,但当我去创建警报时,我不断收到警报“查询未返回 TimeGenera
在 Azure 中的 Log Analytics 中,我为 VM Heartbeat 选择一个预定义查询,我在编辑器中运行查询正常,但当我去创建警报时,我不断收到警报“查询未返回 TimeGenera
今天我开始使用 JexcelApi 并遇到了这个:当您尝试从特定位置获取元素时,不是像您通常期望的那样使用sheet.getCell(row,col),而是使用sheet.getCell(col,ro
我有一个包含 28 列的数据库。第一列是代码,第二列是名称,其余是值。 public void displayData() { con.Open(); MySqlDataAdapter
我很沮丧:每当我缩小这个网页时,一切都变得一团糟。我如何将网页居中,以便我可以缩小并且元素不会被错误定位。 (它应该是 2 列,但所有内容都合并为 1)我试过 但由于某种原因,这不起作用。 www.o
我是一名优秀的程序员,十分优秀!