2017-09-19 25 views
1

首先,我的知識來自w3schools和谷歌,所以請裸露在我身邊。我有搜索谷歌,在這裏和w3schools,但這個答案我無法找到反正。即使在「可能已經有你的答案的問題」中也沒有。形式的按鈕後,從ajax調用db不起作用

我想了解一些關於AJAX和我都來保持本指南W3schools AJAX database

所有的引導,我可以去工作,但是當我嘗試它適合我的需求出了問題。我想要的是,當我到「getuser.php」我想能夠更新此文件中的數據庫。如果可能,沒有我離開這個頁面,結果我找到了。我從本網站之前的下拉表中選擇。應該更新數據庫的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); 
?> 

「更新」 按鈕不起作用。它沒有關係,我放置文件(相同的文件夾,不同的文件夾)等。但是,如果我添加一個按鈕的鏈接之外的那個按鈕的工作。但只要它在一張桌子裏面,PLUS也就是method =「post」的形式,它會把它搞亂。

我在做什麼錯了?

或者是有可能在這裏製作一個按鈕,這個按鈕帶有$ id到一個小的彈出窗口? (我可以在新窗口中打開它,但我不能選擇窗口應該多大)

親切的問候

克里斯

+2

HTML側面說明:''的

'不能言子'。 –

+0

所以只是爲了確保我正確理解你。 必須在

之外? :) – Stryhns

+0

是的,(基本)語法是:'

'。這個答案會告訴你它是如何完成的https://stackoverflow.com/a/29364569/1415724 –

回答

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; 
}); 

}); 
+0

非常感謝!這說得通。當我回到家時,我明天會試試這個。 :) – Stryhns