bo_*_*ows 4 javascript ajax jquery
我没有很多关于AJAX调用的经验,但我的例子似乎很简单(除了我没有使用元素)并且它让我想知道我是否正在进行错误的调用,或者如果你不能在没有表单的情况下进行AJAX POST.
我正在使用的按钮的HTML是这样的:
<button class="btn btn-primary btn-small" id='saveAsNewName' onclick=saveAsNewName()>Save As</button>
Run Code Online (Sandbox Code Playgroud)
我的JS:
function saveAsNewName(str, id) {
var values = {
'str' : str,
'id' : id,
};
$.ajax({
url: "saveAsNewName.php",
type: "POST",
data: values,
dataType: 'JSON',
success: function(data){
alert("success" + data);
}
})
.done(function(data) {
alert("success" + data);
})
.fail(function(data) {
alert("failure" + data);
});
}
Run Code Online (Sandbox Code Playgroud)
而且,就目前而言,我的php只是用于测试是否有效:
echo json_encode($_POST['id']));
Run Code Online (Sandbox Code Playgroud)
每次点击我的按钮,我都会收到失败通知.是否有一个特定的解决方法,我不需要使用表单,或者我是否弄乱了基本的.ajax示例?
编辑,要明确:我正在使用另一组jQuery来不断更新saveAsNewName()的参数.结果如下:
onclick="saveAsNewName("wheyjuice 555", "33541")"
Run Code Online (Sandbox Code Playgroud)
作为这个jQuery代码的结果:
$(document).on('keyup',"[class*=editSimNameField]", function() {
var newText = $(this).val(); var id = $(".loadWindow").val();
$("#saveAsNewName").attr('onclick', 'saveAsNewName(\"' + newText + '\", \"' + id + '\")');
});
Run Code Online (Sandbox Code Playgroud)
Cha*_*ser 11
你没有saveAsNewName()在onclick中向你的函数传递任何东西,你只是运行该函数.因此,str并且id是空值.
这样的事情怎么样,你从ID获取元素的值:
function saveAsNewName() {
var values = {
'str': document.getElementById('elem1').value,
'id': document.getElementById('elem2').value
};
$.ajax({
url: "saveAsNewName.php",
type: "POST",
data: values,
});
...
}
Run Code Online (Sandbox Code Playgroud)
显然,有无数其他方法可以获得价值.
此外,无论HTML标记,表单存在等,您都可以POST到URL.
编辑:看到你关于onclick动态更新属性的评论,我建议你做两件事,让你自己解决这个问题.这些说明适用于Chrome,但在Firefox中通过Firebug也可以使用.
1)使用此console.log()功能values验证您是否将数据发送到您认为正在发送的功能.例如console.log(values),然后在开发人员工具中检查控制台.
2)打开开发人员工具并使用网络选项卡检查AJAX调用.您实际上可以实时看到呼叫,并可以检查它以查看发送了哪些数据以及接收了哪些数据.
| 归档时间: |
|
| 查看次数: |
24154 次 |
| 最近记录: |