从按钮单击更新外部数据库(HTML,JavaScript,PHP,Ajax)

时间:2017-04-18 19:20:26

标签: javascript php html ajax

我已经在项目上工作了一段时间,这是我列表中的最后一项。单击按钮后,我需要更新外部数据库。我尝试了很多不同的东西,特别是浏览了这个网站大约12个小时。我仍然无法弄明白。 Ajax对我来说非常陌生。

我希望有人有空闲时间指出我正确的方向......

以下是我要完成的工作的基本概要:

  1. 我创建了几个按钮,每个按钮都有唯一的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>
    

  2. 输入类型=&#34;数字&#34;保存用户输入的新值。它旁边有一个按钮,标有&#34;更新&#34; (下一个td元素)。

  3. 何时&#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
    
    }
  4. 这是我需要弥合差距的地方......我如何获取这两个变量,将它们传递给PHP文件,并让该文件处理对数据库的更新?我一直在阅读关于AJAX的内容,但我似乎无法让它发挥作用。我试图附加POST数据(例如?id = $ X,value = $ y等),但似乎用包含该信息的URL刷新页面。如果可能的话,我希望保持URL不变并更新信息而不重新加载页面(根据我的理解,真正的AJAX精神)。

  5. 这是我需要处理的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();
    
            }
    
        }
    
    ?>
    

    感谢您的所有时间。我真的很期待听到那些需要一些时间来帮助我的人的意见。

0 个答案:

没有答案