我已经在项目上工作了一段时间,这是我列表中的最后一项。单击按钮后,我需要更新外部数据库。我尝试了很多不同的东西,特别是浏览了这个网站大约12个小时。我仍然无法弄明白。 Ajax对我来说非常陌生。
我希望有人有空闲时间指出我正确的方向......
以下是我要完成的工作的基本概要:
我创建了几个按钮,每个按钮都有唯一的ID,因此我可以用JavaScript隔离它们。
<?php
$n = 0;
for ($z = 0; $z < $name_size; $z++) { ?>
<tr class="number-rows">
<td width="20%"><?php echo str_replace("_", " ", ucwords($name_array[$z], "_"));?></td>
<td width="10%"><input type="number" id="new-number-<?php echo $number_array[$n]; ?>" class="number-update" value="" min="1" max="999999999" /></td>
<td><a href = "javascript:void(0)" class = "send-update" onclick = "updateNumber(event, '<?php echo $number_array[$n]; ?>')">Update</a></td>
<td width="15%" class="update-success" style="display:none"><span style="color:green">Successfully Updated!</span></td>
<td width="15%" class="update-failure" style="display:none"><span style="color:red">Not Updated!</span></td>
<?php $n = $n + 4;?>
</tr>
<?php
}?>
</tbody>
输入类型=&#34;数字&#34;保存用户输入的新值。它旁边有一个按钮,标有&#34;更新&#34; (下一个td元素)。
何时&#34;更新&#34;单击,我需要传递输入数字字段的值和单击的特定更新按钮的ID。我可以很容易地用JavaScript做到这一点:
function updateNumber(event,id){//The id parameter is actually the row # from the database table I need to update.
//From this id, I generate unique td id's so I can isolate them in JavaScript.
var userInput = "new-number-" + id;
var newNumber = document.getElementById(userInput);
var updateNumber = newNumber.value;
//The td with the unique id attached to it will contain the new number value I need to update my database with.
//So now I have two variables of use, the id of the database table row, and the new number to update it with.
//Next I need to either call a PHP function, or a PHP file so that I can connect to the database and insert the value.
//Use AJAX here to call my PHP file? How do I pass
}
这是我需要弥合差距的地方......我如何获取这两个变量,将它们传递给PHP文件,并让该文件处理对数据库的更新?我一直在阅读关于AJAX的内容,但我似乎无法让它发挥作用。我试图附加POST数据(例如?id = $ X,value = $ y等),但似乎用包含该信息的URL刷新页面。如果可能的话,我希望保持URL不变并更新信息而不重新加载页面(根据我的理解,真正的AJAX精神)。
这是我需要处理的PHP文件,以使其与AJAX兼容:
<?php
if(isset($_POST['id']) && isset($_POST['value']) {
//I use an SSL connection with login details elsewhere
require_once('/path/to/connection.php');
if (!$link) {
echo "<br>This tool is not available at this time. Please try again later.";
} //Can't connect to database
else {
$number_update = "UPDATE numbers SET price='".$_POST['value']."' WHERE id='".$_POST['id']"'";
$send_update = $instance->query($number_update);
if (!$send_update) {
echo "There was an error while updating this listing.";
}
else {
echo "Number updated succesfully.";
}
$instance->close();
}
}
?>
感谢您的所有时间。我真的很期待听到那些需要一些时间来帮助我的人的意见。