在从db调用ajax之后,窗体中的按钮不起作用

时间:2017-09-19 18:50:40

标签: javascript php jquery ajax mysqli

我搜索谷歌,这里和w3schools但这个答案我无论如何都找不到。甚至没有可能已经有你的答案的问题"。

我正在尝试更多地了解AJAX,并且我已经对本指南有所了解W3schools AJAX database

我可以开始工作的所有指南,但当我尝试适应我的需要时,它会出错。我想要的是当我到达" getuser.php"我希望能够在此文件中更新db。如果可能的话,我没有离开这个页面,结果我找到了。我在此网站之前选择了一个下拉列表。应该更新数据库的php文件可以工作(在普通页面上试过它们,一切都很好)。我目前的解决方法是添加一个按钮,打开第二个窗口来更新信息。

当我到达这一点时:

<?php
$q = intval($_GET['q']);
include 'db.php';
$con = new mysqli($servername, $username, $password, $dbname);
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"webhelp");
$sql="SELECT * FROM advisors WHERE id = '".$q."'";
$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_assoc($result)) {
    echo "<table><tr><td>Phone</td><td>" . $row['phone'] . "</td>
          <td><form action='addphone.php' method='post'>
          <input type='hidden' name='id' value='".$q."'>        
          <td><input type='text' name='phone'></td>
          <td><input type='submit' value='Update'></td>
          </form></td></tr></table>";

    echo "<tr><td>LoB</td><td>" . $row['lob'] . "</td>
          <td><form action='addlob.php' method='post'>
          <input type='hidden' name='id' value='".$q."'>
          <td><select name='lob'>
          <option value='". $row['lob'] ."'>" . $row['lob'] . "</option>".

          $sql = "SELECT * FROM lob";
          $result = $con->query($sql);

          while($row = $result->fetch_assoc()) {
             echo "<option value='" . $row["lob"] . "'>" . $row["lob"] . "</option>"; }
              "</select></td>
              <td><input type='submit' value='Update'></td>
              </form>
              </tr>";

     echo "<tr><td>Country</td><td>" . $row['country'] . "</td>
          <td><form action='addcountry.php' method='post'>
          <input type='hidden' name='id' value='".$q."'>
          <td><select name='country'>
          <option value='". $row['country'] ."'>" . $row['country'] . "</option>".

          $sql = "SELECT * FROM country";
          $result = $con->query($sql);

          while($row = $result->fetch_assoc()) {
             echo "<option value='" . $row["country"] . "'>" . $row2["country"] . "</option>" ; }
            "</select></td>
            <td><input type='submit' value='Update'></td>
            </form>
            </tr>"; 

  }
echo "</table>";

mysqli_close($con);
?>

&#34;更新&#34;按钮不起作用。我放置文件(相同的文件夹,不同的文件夹)等无关紧要。但是,如果我添加一个按钮,其中的链接在那个按钮之外工作。但是,只要它在一个表格中,PLUS也方法=&#34; post&#34;处于混乱状态。

我做错了什么?

或者可以在这里创建一个带有$ id的按钮到一个小弹出窗口? (我可以在新窗口中打开它,但我无法选择窗口的大小)

1 个答案:

答案 0 :(得分:0)

您希望为所有3种表单执行此操作。我举了第一个例子。

<强>表格

   echo "<form class='addPhoneForm' action='addphone.php' method='post'>
         <table>
         <tr>
          <td>Phone</td><td>" . $row['phone'] . "</td>
          <td><input class='phoneID' type='hidden' name='id' value='".$q."'></td>        
          <td><input class='phoneNumber' type='text' name='phone'></td>
          <td><input class='submitme' type='submit' value='Update'></td>
          </td>
          </tr>
         </table>
         </form>";

<强> AJAX

$(document).ready(function(){
$(".submitme").click(function(){

//collect variables from input
var phoneID = $(".phoneID").val();
var phoneNumber = $(".phoneNumber").val();

// store in a string
var dataAddPhone = 'phoneID='+ phoneID + '&phoneNumber='+ phoneNumber;

// send to database
$.ajax({
type: "POST",
url: "addphone.php",
data: dataAddPhone,
cache: true,

//if success 
success: function(response){

//display message
   $(".displayMessage").html(response);

   //and reset form
       $(".addPhoneForm").trigger("reset");
}
});

return false;
});

});