我对jQuery有一点问题 - 在jquery ui确认对话框中我有2个输入: 首先 - 隐藏精确值=“” 第二 - 输入文本 - 这是问题所在。
当我点击“确定”时,脚本只向我发送第一个值,第二个为空。但是当我写入值=“123”时,有两个正在发送。
HTML:
<input type="text" value="" class="MyIn" id="MyIn" name="MyIn" >
<input type="hidden" value="<?=$r['order_id'];?>" class="orderid" id="orderid" >
JavaScript的:
$("a.opener").click(function (e) {
$("#dialog-message").dialog({
buttons: {
Ok: function () {
var sendNumber = $("input#MyIn").val();
var orderid = $("input#orderid").val();
var dataString = 'orderid=' + orderid + '&sendNumber=' + sendNumber;
$.ajax({
type: "POST",
url: "moduls/send.php",
data: dataString,
success: function () {
$("#dialog-message").dialog("close");
}
});
return false;
}
}
});
});
答案 0 :(得分:1)
它可能没什么区别,但是当通过AJAX发送数据时,包含DATATYPE是一种很好的做法,如下所示:
$.ajax({
type: "POST",
url: "moduls/send.php",
data: dataString,
dataType: 'text',
success: function () {
$("#dialog-message").dialog("close");
}
});
答案 1 :(得分:1)
我非常怀疑<?=$r['order_id'];?>
返回一个空字符串。如果是这种情况,则不会发送。另外dataString不是在jQuery中处理params的首选方法。贝娄对这种情况很感兴趣:
$("a.opener").click(function (e) {
$("#dialog-message").dialog({
buttons: {
Ok: function () {
// if sendNumber fails or evaluates to false,
// it will be replaced with 'null', insuring its sent anyway
// and you can trap on the serverside.
var sendNumber = $("input#MyIn").val() || 'null';
var orderid = $("input#orderid").val();
var postData = { orderid : orderid, sendNumber : sendNumber};
//shorthand of extra niceness
$.post('moduls/send.php', postData, function(){
$("#dialog-message").dialog("close");
});
return false;
}
}
});
});
答案 2 :(得分:0)
您当前的jQuery代码应该正常工作,因为隐藏输入元素的值的有效值是有效的。
尝试提醒值以确保正确设置。如果不是,那么您就知道问题出在PHP变量扩展中。如果它确实发出警报,则问题在于您的PHP文件send.php
。