按钮单击将表单ID发送到AJAX

时间:2014-05-19 23:46:43

标签: php ajax

我有一个令我心烦意乱的问题:如何将存储在PHP变量中的表单ID发送到我的AJAX脚本,以便在提交时更新正确的表单?

我的表单是一个模板,可以在设置$_REQUEST['id']时从MySQL表中加载数据。因此,我的表单可能包含不同行的不同数据。

所以,if (isset($_REQUEST["eid"]) && $_REQUEST["eid"] > 0) { ... fill the form ... }

表单ID存储在PHP变量中,如$form_id = $_REQUEST["eid"];

如果用户更改了任何内容,我想使用下面的按钮更新表单:

<button type="submit" id="update" class="form-save-button" onclick="update_form();">UPDATE</button>

以下AJAX将数据发送到update.php:

function update_form() {
var dataString = form.serialize() + '&page=update';
$.ajax({
url: 'obt_sp_submit.php', // form action url
type: 'POST', // form submit method get/post
dataType: 'html', // request type html/json/xml
data: dataString, // serialize form data 
cache: 'false',
beforeSend: function() {
    alert.fadeOut();
    update.html('Updating...'); // change submit button text
},
success: function(response) {
    var response_brought = response.indexOf("completed");
    if(response_brought != -1)
    {
        $('#obt_sp').unbind('submit');
        alert.html(response).fadeIn(); // fade in response data
        $('#obt_sp')[0].reset.click(); // reset form
        update.html('UPDATE'); // reset submit button text
    }
    else
    {
        $('#obt_sp').unbind('submit');
        alert.html(response).fadeIn();
        update.html('UPDATE'); // reset submit button text
    }
},
error: function(e) {
    console.log(e)
}
});
}

我想将表单的id添加到dataString,如下所示:

var dataString = form.serialize() + '&id=form_id' + '&page=update';

但我不知道怎么做。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

您必须使用PHP动态编写字符串:

var dataString = form.serialize() + "&id='<?php echo $REQUEST['eid'] ?>'+&page=update"; 

在服务器上,您可以在文档上编写Php代码,它们将在客户端显示为HTML / JS。

答案 1 :(得分:0)

听起来像type=hidden表单字段的作业:

<input type="hidden" name="eid" value="whatever">

答案 2 :(得分:0)

如上所述,最实用的方法是利用表单中input type="hidden"的使用。 这样的一个例子是:

<form action="#" method="post" id=""myform">
    <input type="hidden" name="eid" value="1">
    <input type="submit" value="Edit">
</form>

让你用jQuery运行类似的东西:

$('#myform').on('submit', function(){
    update_form();
    return false;
});

前提是您在AJAX请求中正确发送所需内容(从您需要的地方获取输入等等等等等等)

您也可以将其包含在数据字符串中;我不太明白为什么你会这样做......但每个人都是他们自己的。

var dataString = form.serialize() + "&eid=SOME_EID_HERE&page=update";