2016-03-01 51 views
0

好日子大家!jQuery和PHP未定義指數

我試圖用jQuery加載外部php文件,因爲顯然我使用的是GET方法在我的外部PHP文件,我得到一個undefined index

這裏是我的代碼:

主文件

<script> 
$(function() { 
    $('#loadClients').load('clientsTable.php'); 
}); 
</script> 

<body> 
<div id="loadClients"><!-- load here--></div> 
</body> 

clientsTable.php

<table class="searchTbl" > 
    <thead> 
    <tr> 
     <th width="200">Account #</th> 
     <th width="300">Customer Name</th> 
     <th width="150">Balance</th> 
     <th width="100">Action</th> 
    </tr> 
    </thead> 
    <tbody> 
    <?php 
     require ("db.php"); 
     $add = $_GET['address']; 
     if ($_GET['address']=="All") 
     { 
     $gets = mysql_query("SELECT * FROM customers"); 
     } 
     else 
     { 
     $gets = mysql_query("SELECT * FROM customers WHERE cusadd='$add'"); 
     } 
     while($row = mysql_fetch_assoc($gets)) 
     { 
     ?> 
    <tr> 
     <td> <?= $row['accno']; ?> </td> 
     <td> <?= $row['name']; ?> </td> 
     <!-- <td style="color:#f0356e; "> <?php //number_format($row['totbal']); ?> </td> --> 
     <td style="color:#f0356e; "> <?= formatMoney($row['totbal'], true); ?> </td> 
     <td> <a href="#" data-reveal-id="myModal" data-reveal-ajax="records.php?id=<?= $row['accno']; ?>" id="viewData-<?= $row['accno']; ?>"> View Data </a> </td> 
    </tr> 
    <?php } ?> 
    </tbody> 
</table> 

在我的主文件,樣品網址是localhost/accountsknc/main.php?address=All。我得到的錯誤/通知是Notice: Undefined index: address,因爲它可能是外部文件。

有沒有一種方法來處理這使客戶的數據將在我的主文件顯示出來?先謝謝你。

PS:我知道,我的代碼是脆弱的,因爲MySQL是越來越過時,但我只是想試探這個地方,並會使用PDO的時候我就已經實現了。

+0

你的主文件說'clientsTable.php',其中一個是什麼呢? – MinusFour

+0

@MinusFour是外部文件 – FewFlyBy

+0

你混合了請求。如果你的第一個請求是'main.php?address = All',那麼任何後續請求(即加載)都不會發送查詢字符串,除非你指定了。 – MinusFour

回答

1

錯誤,因爲沒有這樣的參數address名稱存在於url上,因此$_GET['address']不存在,並且不能得到最終會出錯的值。給它一些價值,如果沒有得到請求:

<?php 
require ("db.php"); 
$add = isset($_GET['address']) ? $_GET['address'] : 'All'; 
if ($add=="All") 
{ 
    $gets = mysql_query("SELECT * FROM customers"); 
} 
else 
{ 
    $gets = mysql_query("SELECT * FROM customers WHERE cusadd='$add'"); 
} 
+0

隨着你的代碼,無論地址等於什麼,它就變成「全部」 – FewFlyBy

+0

不,它不應該。你怎麼稱呼它?你可以張貼提到的網址 –

+0

如果是main.php?地址=所有它應該顯示所有的客戶端,但對於例如,如果它是main.php?地址=阿拉巴馬州,它應該只顯示來自阿拉巴馬 – FewFlyBy

1

你需要對這兩行做一個小的修改。

$add = $_GET['address']; 
if ($_GET['address']=="All") 

$add = isset($_GET['address']) ? $_GET['address'] : 'All'; 
if($add == "All") 

因此,如果$ _GET [ '地址']沒有設置,它會尋找所有的地址,如果你的$ _GET [ '地址']是「所有」。

+0

隨着你的代碼,無論地址等於什麼,它變成「全部」 – FewFlyBy

+0

什麼?爲什麼會變成「全部」?如果$ _GET ['address']被設置,它將採用$ _GET ['address']值,否則將採用「All」作爲值。 –

+0

我試過了,它沒有工作..無論地址是否相等,它仍然得到所有的地址 – FewFlyBy