在我的HTML / PHP应用程序中,我有一个简单的表单:
<form method="post">
<input type="text" id="vehicle1" name="vehicle1" value="Bike">
<input type="text" id="vehicle2" name="vehicle2" value="Car">
<input type="text" id="vehicle3" name="vehicle3" value="Boat">
<button type="submit" name="submitform" class="btn btn-success" value="save">Save</button>
</form>
然后,在页面的另一部分,我有一个标准按钮:
<button type="button" class="btn btn-primary">Update</button>
当用户按下此按钮时,所需的行为是模仿使用“提交”按钮发布表单的相同行为,但是:
vehicle2
)示例,为简单起见,我使用一个字段:
function updateForm(id, value)
{
$.ajax({
url: "samepage.php",
type: 'POST',
dataType: "json",
data: JSON.stringify({submitform: "save", id: value}),
cache: false,
contentType: "application/json",
success: function (result) {
},
error: function (request, status, error) {
console.error(request, status, error);
}
});
}
所以我可以这样称呼它:
updateForm("vehicle2", "Plane");
这是我的页面的PHP代码:
<?php
if (isset($_POST['submitform'])) {
switch ($_POST["submitform"]) {
case "save":
foreach ($_POST as $key => $value) {
if ($key == 'submitform') continue;
$sql_update = 'UPDATE settings SET value="' . $value . '" WHERE id=' . $key;
$db->exec($sql_update);
}
break;
}
}
?>
HTML follows...
但是它返回有关json内容的错误:
parsererror语法错误:JSON.parse:JSON数据第3行第1列的意外字符
我的方法不对吗?
答案 0 :(得分:1)
这是您发送的正确代码(主要是ajax请求):
<?php
if (isset($_POST['submitform'])) {
switch ($_POST["submitform"]) {
case "save":
foreach ($_POST as $key => $value) {
if ($key == 'submitform') continue;
$sql_update = 'UPDATE settings SET value="' . $value . '" WHERE id=' . $key;
$db->exec($sql_update);
}
break;
}
}
?>
<script>
function updateForm(id, value)
{
$.ajax({
url: "samepage.php",
type: 'POST',
data: {submitform: "save", id: value},
success: function (result) {
// reload the page ?
//location.reload();
},
error: function (request, status, error) {
console.error(request, status, error);
}
});
}
</script>
<form method="post">
<input type="text" id="vehicle1" name="vehicle1" value="Bike">
<input type="text" id="vehicle2" name="vehicle2" value="Car">
<input type="text" id="vehicle3" name="vehicle3" value="Boat">
<button type="submit" name="submitform" class="btn btn-success" value="save">Save</button>
</form>
<button onclick="updateForm('vehicle2', 'Plane');" type="button" class="btn btn-primary">Update</button>
编辑:
或者您可以简单地添加一个表单:
<form method="post">
<input type="hidden" name="vehicle2" value="Plane">
<button type="submit" name="submitform" class="btn btn-success" value="save">Update</button>
</form>