我有一个巨大的表单,在表单的一部分中,我想使用 js 向数据库插入一些值。我可能不清楚如何提出这个问题,但在这里我的需求是:假设我在数据库表 1、表 2 中有两个表。在 html 表单中:
<select name="tab1" id="tab1">
<?php while($row = fetch from table 1){ ?>
<option value"<?=$row['name']?>" name="option1"><?=$row['name']?></option>
<?php } ?>
</select>
<input type="file" name="file">
<input type="button" name="button" onclick="submit_form(true,'');">
现在,我想将 $row['name'] 值传递给 javascript 中的 submit_form() 函数。javascript 代码将检查该值并将其返回到表单以提交它。我的问题是,由于表1中的$row['name']在while循环内,我无法将值传递给javascript。如果表单很小,我可以使用提交按钮并检查 $_POST("提交")类型。我想将此表单中的$row['name']作为与名称关联的文件名插入table2。
据
我了解,您想将所选值从表单传递到submit_form()
函数?
function submit_form(param1, param2){
var passedValue = document.getElementById('tab1').value;
// here is your old submit_form() function. passedValue contains
// your selected $row['name']
}
@Jhilke Dai,首先你的php代码有点bug,'='符号必须是html而不是php正确的代码是
<select name="tab1" id="tab1">
<?php while($row = fetch from table 1) { ?>
<option value="<? echo $row['name'] ?>" name="option1"><? echo $row['name'] ?></option>
<?php } ?>
</select>
<input type="file" name="file"> <input type="button" name="button" onclick="submit_form(true,'')">
您可以使用泛型函数甚至 jQuery 迭代来获取表单值
请参阅类似的问题答案:从更改时选择中获取所选值/文本
function getDomValueByID( id ) {
return document.getElementById(id).value;
}
function submit_form( a, b ) {
var formValue = getDomValueByID( 'tab1' );
//OR
var jQueryFormValue = jQuery( "#tab1" ).val();
//Do what u want here.
}
事实上,有些人认为通过javaScript传递选项数据是一个非常糟糕的主意,如果它已经在页面上生成,原因如下
- 重复数据,浪费带宽。
- 可移植性较低的代码,非 OOP。
- 更难维护的是,php代码中的更改需要更改javaScript代码。
另外,如果您真的感兴趣(这种做法有时不受欢迎)。您可以在标头中的某处使用以下代码作为 PHP 代码。将 PHP 变量传递给 JavaScript。但是,有很多更好的方法可以做到这一点,从JSONS到XML。
<?php optList = ['one', 'two', 'three']; ?>
<script type="text/javascript">
//Window represents the global variable space, and doing this is really bad practice as listed above.
window.optionList = [ <?php echo( implode(' , ', optList) );?> ];
</script>