继承我的问题,当我试图将我的数据发送到PHP时,它只发送<button>
或<input type="button">
的值。
如果我删除变量的定义,它只会将数据作为字符串发送,如果我有这样的话
newusername: "newusername",
newpassword: "newpassword",
newclub: "newclub"
如果我删除""
我将在jquery.mini.js中收到错误
HTML:
<form method="post">
<div class="form-group">
<label> Username </label>
<input type="text" class="form-control" id="newusername">
</div>
<div class="form-group">
<label> Password </label>
<input type="password" class="form-control" id="newpassword">
</div>
<div class="form-group">
<label> Your club </label>
<input type="text" class="form-control" id="newclub">
</div>
<input type="button" id="btn-reg">
</form>
使用Javascript:
console.log('Script loaded...');
$("#btn-reg").on("click", reg);
function reg(newusername, newpassword, newclub) {
console.log('Klick, klick...');
var newusername = $(this).val();
var newpassword = $(this).val();
var newclub = $(this).val();
$.post('classCalling.php', {
newusername: "newusername",
newpassword: "newpassword",
newclub: "newclub"
},
function(data){
console.log(data);
});
}
答案 0 :(得分:5)
我看到两件事:
发送对象的定义很糟糕。该对象由键值对组成,您将其设置为硬编码的字符串值。
开头$(this).val()
的变量捕获都是一样的。您没有将其作为DOM对象获取。您应该在括号中进行CSS查询(即$("---this--")
)。
function reg(newusername, newpassword, newclub) {
console.log('Klick, klick...');
// if there is a input with class newusernameand only one
var newusername = $('input.newusername').val();
//if there is a input with class newpassword and only one
var newpassword = $('input.newpassword').val();
//if there is a input with class newclub and only one
var newclub = $('input.newclub').val();
$.post('classCalling.php',
{
newusername: newusername,
newpassword: newpassword,
newclub: newclub
},
function(data) {
console.log(data);
});
}
答案 1 :(得分:2)
假设这是一个表单,您可以使用serialize()
来简化数据,list-style-type
将发送与输入控件名称相同的键
regex
JS
<form id="password-form">
<input name="newusername">
<input name="newpassword">
<select name="newclub"></select>
<input type="submit" value="Submit">
</form>
或使用$('#password-form').submit(function(event){
event.preventDefault(); // stop default from reloading page
var postData = $(this).serialize();
$.post('classCalling.php', postData , function(response){
console.log(response);
});
});
作为事件处理函数编写:
reg()
最好绑定提交事件,以便用户不会使用键盘绕过点击
答案 2 :(得分:0)
您不能将这些变量作为参数传递。此外,您将字符串传递给后端,什么不能工作。此外,您不是选择输入字段的值而是选择按钮本身的值。
HTML:
NSMutableArray *arr = [[NSMutableArray alloc]init];
int sizeArr;
scanf("%d", &sizeArr);
int arrayValues;
for(int i=0; i<sizeArr; i++)
{
scanf("%d",&arrayValues);
[arr addObject:arrayValues]; //error on this line
}
JavaScript的:
<form>
<input type="text" class="newusername" />
<input type="password" class="newpassword" />
<input type="text" class="newclub" />
<button class="btn-reg">Submit</button>
</form>
答案 3 :(得分:0)
看起来你可能在事件处理程序如何在jQuery中工作时出现概念错误。
致电$("#btn-reg").on("click", reg);
,
每当按下reg
按钮时,您告诉jQuery调用方法#btn-reg
。发生这种情况时,jQuery将在传递被按下的元素时调用reg
。 (这是为了支持多个事件处理程序调用一个方法,例如,如果你有2个按钮)。
因此,使用$(this)
,您实际上是在调用$("#btn-reg")
。
$(this).val();
会为您提供<button>
的值,您将其分配给三个变量newusername
,newpassword
和newclub
。 - 这解释了为什么您在PHP脚本上看到<button>
的价值。
虽然您尚未提供表单的HTML内容,但以下是我如何使用javascript提交的简单3字段表单的示例:
HTML:
<input type="text" id="newusername" />
<input type="text" id="newpassword" />
<input type="text" id="newclub" />
<button id="btn-reg">Submit</button>
JavaScript的:
console.log('Script loaded...');
$("#btn-reg").on("click", reg);
function reg(e) {
e.preventDefault();
console.log('Klick, klick...');
// You are declaring new variables here
var newusername = $("#newusername").val();
var newpassword = $("#newpassword").val();
var newclub = $("#newclub").val();
// And using them here. The format used here is
// <name to submit>: <value to submit>
// That is why the variable names should not be quoted on the right
$.post('classCalling.php', {
newusername: newusername,
newpassword: newpassword,
newclub: newclub
},
function(data){
console.log(data);
});
}
答案 4 :(得分:-5)
var newusername="newusername"; // or get your needed value anywhere else
var newpassword="newpassword"; // or get your needed value anywhere else
var newclub="newclub"; // or get your needed value anywhere else
$("#btn-reg").on("click", function () {
$.post('classCalling.php', {
newusername: newusername,
newpassword: newpassword,
newclub: newclub
},
function(data){
console.log(data);
});
});
它会帮助你。