0

我希望有人可以帮助我解决我的设计问题。我有 index.php:

其中包含一段javascript代码:

<script type="text/javascript">
$(function() {
    $.getJSON('http://localhost/getData.php', function(data) {

    foo...

index.php 还包含一个更新屏幕的表单:

<form action="index.php" method="post" />
<input type="submit" name="action" value="update" /></p>

现在我的问题是我需要将一些变量传递给 getData.php 来更新屏幕。getData 可以很好地处理静态信息,但根据表单上的选择,数据会发生变化。

我传递变量的最佳方式是什么?

还是我设计不正确?

谢谢


我更新的 javascript 如下所示:

<script type="text/javascript">
$(function() {
$.getJSON('http://localhost/getData.php', {
group_value: $('#group_id option:selected').val(),
updatedb_value: $('#update_db_id').val() 
}, function(data) {

然后我的表格如下所示:

<form id="myform" action="index.php" method="post" />
<select id="group_id" name="group">
<option value="0">Atlanta</option>
<option value="1">Chicago</option>
<option value="2">Los Angeles</option>
<option value="3">New York</option>
</select>
<input type="submit" name="action" value="Update" />
<input type="checkbox" id="update_db_id" name="update_db" value="1" />Update DB?<br />
</form>

无论我选择或检查什么,当我单击更新按钮时,JS 控制台都会显示

GET http://localhost/getData.php?group_value=0&updatedb_value=1

有什么建议么?

4

2 回答 2

2

您可以使用$(input_selector).val()获取表单输入的值,并将其作为对象传递给 getJSON,如下所示:

$.getJSON('http://localhost/getData.php', {
    some_value: $(some_input).val(),
    other_value: $(other_input).val()
}, function(data) { ... });

您还可以使用序列化来传递所有表单数据:

$.getJSON('http://localhost/getData.php', $(form_selector).serialize(), function(data) { ... });
于 2012-04-27T00:42:26.840 回答
0

唔。仔细观察这一行:

<form id="myform" action="index.php" method="post" />

哎呀。您自行关闭了表单。这可能会导致输入/选择元素的更新方式出现问题。尝试将其更改为:

<form id="myform" action="index.php" method="post">

您实际上也不需要 select 元素上的复杂选择器。这也将为您提供选定的值:

$('#group_id').val()
于 2012-05-02T01:59:29.610 回答