【问题标题】:How to submit a php select inside form using jquery如何使用 jquery 在表单内提交 php select
【发布时间】:2014-04-29 19:20:33
【问题描述】:

我有一个表单,其中只有一个选择器,其选项主要由 php 填充,当前由 <input type="submit" name="courseSubmit"/> 提交

echo '<form name="CourseForm" action="" method="post">';
echo '<select name="CourseSelect"><option value="0">Select Course</option>';
$result = mysqli_query($con,"  SELECT * FROM course c ");
    while($row = mysqli_fetch_array($result))
            {


echo "<option value='".$row['IDNum']."' ".$select.">" . $row['Title'] . "</option>";                

            }

echo '</select>';
echo '<input name="CourseSubmit" type="submit"/></form>';

点击按钮后,页面被提交,然后使用$_POST['CourseSelect']我可以获得选择的值。

但是,当我尝试在我的选择中将提交按钮的功能替换为 onchange="this.form.submit()" 时,表单似乎没有提交

我知道我可以从 php 调用 js 函数,例如

echo "&lt;select onchange="myjsFunction()"&gt;";

有没有办法使用 jquery 以与使用 &lt;input type="submit"/&gt; 完全相同的方式提交表单?

【问题讨论】:

  • "form" 不是 "this" 的属性,它是按钮本身。表单是按钮的父项,而不是子项。
  • 输入元素的form 属性是包含它的表单。
  • this.form.submit() 执行时是否遇到 Javascript 错误?
  • 我似乎没有收到页面似乎提交的 js 错误,但没有任何反应。
  • 在这里工作正常:jsfiddle.net/barmar/3ezZ8/2

标签: php jquery forms


【解决方案1】:

可以执行以下操作:

$('select[name=CourseSelect]').change(function(){
     $(this).closest('form').submit();
});

并且完全忽略 HTML 元素的 onchange 属性。

这是一个递归示例: http://jsfiddle.net/erXxd/1/

【讨论】:

  • 这是否适用于同一页面上的多个表单?
  • 是的。您可以只使用 $('select') 作为选择器,它将提交任何父表单(通过祖先最接近的搜索与选择器匹配的元素)。编辑:或者可能不是......我想在做出大胆的声明之前先举一个例子。
  • 好的。已证明的大胆声明:jsfiddle.net/erXxd/3(请记住,Chrome 似乎甚至不会尝试在 iFrame 中加载 Google,因此第二个下拉菜单似乎已损坏 --- 我在 IE 中创建了这个)
猜你喜欢
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
相关资源
最近更新 更多