具有相同输入 ID 的多个表单仅使用 Ajax 发送第一个值
more than one form with the same input ID send just the first value with Ajax
我正在做ajax函数,使用表单和输入类型=隐藏插入数据库,但是当我在同一页面中放置多个表单时,它总是只取第一个表单中的第一个值
这是代码:
Ajax 函数
<script language="javascript" type="text/javascript">
//Browser Support Code
function ajaxFunction(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById("ajaxDiv");
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var in1 = document.getElementById("in1").value;
var queryString1 = "?in1=" + in1;
//ajaxRequest.open("GET", "/sites/all/php/check.php" + queryString, true);
ajaxRequest.open("GET", "/sites/all/php/check.php" + queryString1, true);
ajaxRequest.send(null);
}
//–>
</script>
这是 HTML 表单
<form name="myForm1">
<input type="hidden" value="1" id="in1">
<a onclick="ajaxFunction()" class="folloo"></a>
<form name="myForm2">
<input type="hidden" value="2" id="in1">
<a onclick="ajaxFunction()" class="folloo"></a>
<form name="myForm3">
<input type="hidden" value="3" id="in1">
<a onclick="ajaxFunction()" class="folloo"></a>
</form>
</form>
</form>
这是执行数据库查询的检查.php代码
<?php
//Connect to MySQL Server
//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("localhost","admin","123456") or die('Cannot connect to the database
because: ' . mysql_error());
//specify database ** EDIT REQUIRED HERE **
mysql_select_db("dbname") or die("Unable to select database");
//select which database we're using
// Retrieve data from Query String
$in1 = $_GET['in1'];
// Escape User Input to help prevent SQL Injection
$in1 = mysql_real_escape_string($in1);
//Build and run a SQL Query on our MySQL tutorial
if($in1){
mysql_query("INSERT INTO test (name)
VALUES ('" . $in1. "')");
}
?>
当我单击任何链接时,它总是发送第一个值。
呃,有人告诉我这里有什么问题吗?
id
值在页面上必须是唯一的。您已经证明您有多个具有相同id
值 ( "in1"
) 的input type="hidden"
元素。如果您有多个具有相同id
值的元素,当您尝试查找它时(例如,使用 getElementById
),大多数浏览器会为您提供第一个,但这是未定义的行为,因为标记/DOM 无效。
解决方法是修复 ID,使它们是唯一的,或者根本不使用 ID 并使用不需要唯一的东西,例如 name
或 class
- 但随后您需要使用 querySelectorAll
或类似内容检索它,并处理您有多个匹配元素的事实。
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- 在ajax html返回中调用ajax会阻止第一个ajax脚本进一步工作
- 具有相同输入 ID 的多个表单仅使用 Ajax 发送第一个值
- 如何在第一个 php 脚本中访问变量 'a' 的值到第二个 php 脚本,并通过 ajax 调用链接
- 试图使我的第一个ajax,但卡住了javascript
- Ajax:第一个Post很棒,第二个Post返回URL中的数据
- ajax加载的表单总是发送输入的第一个值,即使重新加载也是如此
- 我的第一个jquery ajax页面(初学者)
- 为什么第一个$.传递数据对象时发生Ajax错误
- 不是所有的链接都触发AJAX调用,只有第一个在Python Flask Application中触发AJAX调用
- Angularjs:ng-model绑定在第一个AJAX请求后不起作用
- 如果第一个ajax请求在第一个调用获得响应之前再次被调用,如何停止第一个ajax请求
- jQuery AJAX在第一个PHP条件之后不显示输出
- ajax只发送输入的第一个值,而不发送其他值
- .children(“:第一个children”)-ajax-多个第一个children
- ajax表单只向第一个id提交空白描述
- 第一个ajax调用没有'不起作用
- 在第一个ajax调用终止之前停止第二个ajax调用
- 我的第一个AJAX脚本没有结果