繁体   English   中英

使用按钮onclick将php while循环内的值传递给javascript

[英]pass the value inside php while loop to javascript using button onclick

我有一个巨大的表单,在表单的一部分中,我想使用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。 如果表单很小,我可以使用Submit按钮并检查$ _POST('submit')类型。 我想以这种形式将$ 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代码是小的错误,'='符号必须在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传递选项数据是一个非常糟糕的主意。

  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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM