我有点坚持我一直在尝试做的事情。
我一直在尝试获取多种形式(六种)来使用我拥有的 javascript 方法。这些表单具有文本输入值,应进行检查,然后传递给 php 文件,然后使用 AJAX 更新页面并确认或出错。
对于这个例子,我将只使用两种形式,这些是我的形式
<div class="trade_info_1">
<h2>Market #1</h2>
<form action="" method="POST">
<ul>
<li>
<label for="market_1">Market: </label><input type="text" name="market_1" id="market_1" />
</li>
<li>
<button type="button" name="button1" id="button1" onclick="check_update_selection()">Update Market!</button>
</li>
</ul>
<input type="hidden" name="market_number" id="market_number" value="1" />
<div id="market_1_output">output</div>
</form>
</div>
<div class="trade_info_2">
<h2>Market #2</h2>
<form action="" method="POST">
<ul>
<li>
<label for="market_2">Market: </label><input type="text" name="market_2" id="market_2" />
</li>
<li>
<button type="button" name="button2" id="button2" onclick="check_update_selection()">Update Market!</button>
</li>
</ul>
<input type="hidden" name="market_number" id="market_number" value="2" />
<div id="market_2_output">output</div>
</form>
</div>
现在是 AJAX 更新页面的地方。这是我已经有的方法(JS)
function check_update_selection()
{
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
console.log('Market value: ' + document.getElementById('market_number').value);
if(document.getElementById('market_number').value == 1)
{
var market = document.getElementById('market_1').value;;
var market_number = 1;
var html_element = 'market_1';
}
else if(document.getElementById('market_number').value == 2)
{
var market = document.getElementById('market_1').value;
var market_number = 2;
var html_element = 'market_2';
}
xhr.open('POST', 'update_market.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
var obj = {market: market};
xhr.send("data=" + JSON.stringify(obj));
xhr.onreadystatechange=function()
{
if (xhr.readyState==4)
{
if(market_number == 1)
{
document.getElementById("market_1_output").innerHTML = xhr.responseText;
}
else if(market_number == 2)
{
document.getElementById("market_2_output").innerHTML = xhr.responseText;
}
}
}
我不会包含 php,因为它所做的一切都与“TEST”一词相呼应。
第一种形式完美地工作,但是,第二种形式没有,它似乎更新了第一种形式。所以我使用了 console.log(); 并发现每次我提交第二个表单时,似乎都会提交第一个表单中的字段。
我在这件事上走的是正确的道路还是有什么我遗漏的?
另外我正在学习javascript,所以我对平台的了解不是最好的,所以请指出我犯的任何错误。
谢谢你的时间。