2014-02-19 168 views
0

變量通過ajax傳遞,它是數據庫名稱。當鏈接被點擊時,它應該從數據庫中檢索數據。鏈接和變量位於同一頁面上。這裏是鏈接的代碼:通過ajax傳遞字符串變量

$x = strval($_GET['x']);  

echo '<a href="#" onclick="showInformation('.$x.')">'.$seatid.'</a>'; 

$ x變量包含數據庫的表名稱。這裏是AJAX代碼:

function showInformation(str) 
{ 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
{// code for IE6, IE5 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() 
{ 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
document.getElementById("txtInfo").innerHTML=xmlhttp.responseText; 
} 
} 
xmlhttp.open("GET","getinfo.php?x="+str,true); 
xmlhttp.send(); 
} 

這裏是getinfo.php:

<?php 
session_start(); 
$_SESSION['login']="1"; 
$x = strval($_GET['x']); 

$con = mysql_connect('localhost','root','Newpass123#','seatmapping');  
if (!$con){ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db('seatmapping'); 
$sql="SELECT name, seatid FROM $x WHERE seatid = 1"; 
$result = mysql_query($sql) or die("Query Error " . mysql_error()); 
... 
... 
?> 

我不能讓它當我點擊鏈接它不會顯示從數據工作表。 請幫幫我。任何形式的幫助表示讚賞。在此先感謝..

+0

公開表名並不是一個好的做法.. –

+2

'//代碼爲IE6,IE5' ......我無言以對。 –

+0

2014年不使用jQuery ajax ...我無言以對。 :) –

回答

0

能否請您試試這個:

替換行

echo '<a href="#" onclick="showInformation('.$x.')">'.$seatid.'</a>'; 

隨着下面:

echo '<a href="#" onclick="showInformation(\''.$x.'\')">'.$seatid.'</a>'; 

這將解決您的問題。

+0

哇!你是一個天才,它的工作。非常感謝你! – rez

+0

如果你沒有通過AJAX發送一個空的對象而不是字符串,那麼這個方法是有意義的,但是仍然看看我提到的安全問題,你會發現你的會話不會阻止任何人出局 –

+0

@ BRadC是的,這是完全合理的。我已經看過錯誤日誌,就像你說的那樣,它說它是未定義的。現在我明白了。感謝您的提示。並感謝你提醒我有關會議.. – rez

0

您未通過預期元素的ID

echo '<a href="#" id="txtInfo" onclick="showInformation('.$x.')">'.$seatid.'</a>'; 

替換該行,而不是

echo '<a href="#" onclick="showInformation('.$x.')">'.$seatid.'</a>'; 
+0

這將是如果你試圖用AJAX/SQL數據替換標籤的內容,但你應該確保HTML,可能是一個div,並存在正確的ID –

+0

@Sagar Panchal我有一個div ID = 「txtInfo」。我還應該把它放在標籤中嗎? – rez

+0

@rez,nop然後找到正確的文件通信,否則使用jquery ajax,它很容易退出。 – SagarPPanchal