现在我正在使用它,并且它完美地工作,但由于某种原因,我不认为这是完成此任务的最佳或最有效的方法。当我开始添加更多的教科书输入时,它似乎会变得混乱。请查看:
的index.html:
function saveUserData(userData) {
$.post('userData.php', {
textbox1: document.getElementById('textbox1').value,
textbox2: document.getElementById('textbox2').value,
userData: JSON.stringify(userData)
}, function(data) {
return true;
});
HTML:
<input name="textbox1" type="textbox1" id="textbox1">
<input name="textbox2" type="textbox2" id="textbox2">
userdata.php:
$userData = json_decode($_POST['userData']);
$textbox1 = $_POST['textbox1'];
$textbox2 = $_POST['textbox2'];
//Insert user data
$query = "INSERT INTO users SET first_name = '".$userData->first_name."', last_name = '".$userData->last_name."', email = '".$userData->email."', picture = '".$userData->picture->data->url."', created = '".date("Y-m-d H:i:s")."', modified = '".date("Y-m-d H:i:s")."',test1 = '".$textbox1."',test2 = '".$textbox2."' ";
$insert = $db->query($query);
答案 0 :(得分:0)
//javascript
var toPost = {};
$("input").each(function() {
toPost[$(this).attr('name')] = $(this).val()
});
var inputs = JSON.stringify(toPost);
//send postJSON to php with $.post()
//in php
$inputs = json_decode($_POST["inputs"], true);
//now all the inputs can be accessed
foreach ($inputs as $name => $val) {
echo "input with name '$name' has value $val";
//you can do all you prepared statements and stuff with these values.
}
更通用,会自动将输入转换为json对象,并使用输入的名称作为键。不要使用$(“:input”),因为这将包括按钮等内容。
---老答案:---
现在无法真正测试,但你能做点什么:
//javascript:
var i = 1;
while ($('#textbox'+i).length != 0) {
postObject['textbox'+i] = $('#textbox'+i).val();
i++;
}
//postObject values are then added to the $.post call
//php:
$i = 1;
$query = "INSERT INTO users SET first_name = '".$userData->first_name."', last_name = '".$userData->last_name."', email = '".$userData->email."', picture = '".$userData->picture->data->url."', created = '".date("Y-m-d H:i:s")."', modified = '".date("Y-m-d H:i:s")."'";
while (isset($_POST["textbox$i"])) {
$query .= ", test$i = '".$_POST["textbox$i"]."'";
$i++;
}