2

我有一个巨大的表格,在表格的一部分我想使用 js 向数据库插入一些值。我可能不清楚如何提出这个问题,但我的需求是:假设我在数据库 table1 和 table2 中有两个表。以 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 代码将检查该值并将其返回到表单以提交它。我的问题是由于 table1 中的 $row['name'] 在 while 循环内,我无法将值传递给 javascript。如果表单很小,我可以使用提交按钮并检查 $_POST('submit') 类型。我想以这种形式将 $row['name'] 插入到 table2 作为与名称关联的文件名。

4

3 回答 3

1

据我了解,您想将选定的值从表单传递到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']

}
于 2012-05-05T12:25:29.917 回答
0

@Jhilke Dai,首先,您的 php 代码有点小错误,'=' 符号必须在 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,'')">
于 2012-05-05T12:03:15.940 回答
0

您可以使用通用函数甚至 jQuery 迭代来获取表单值

请参阅类似的问题答案:Get selected value/text from Select on change

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 传递选项数据是一个非常糟糕的主意,如果它已经在页面上生成,原因如下

  1. 重复数据,浪费带宽。
  2. 可移植性较差的代码,非 OOP。
  3. 更难维护,更改您的 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>
于 2012-05-05T12:41:29.567 回答