[英]Ajax, PHP, SQL, and JavaScript
我遇到了一個找不到答案的問題,我在這里很少問問題,但我很沮喪。 任何幫助將不勝感激。
這是接收Ajax調用的PHP 。
<?php
session_start();
$_SESSION["my_data"] = $_POST['action'];
$DB_HOSTNAME = 'localhost';
$DB_USERNAME = 'username';
$DB_PASSWORD = 'password';
$link2 = mysqli_connect($DB_HOSTNAME,$DB_USERNAME,$DB_PASSWORD) or die('Unable to establish a DB1 connection');
mysqli_select_db($link2, '$DB_USERNAME');
$orderQuery = mysqli_query($link2, "SELECT * FROM table WHERE id='".$_SESSION['my_data']."'");
$orderQuery = mysqli_fetch_assoc($orderQuery);
$orderInfo = "
<table class='table table-striped'>
<tbody>
<tr>
<td>#: </td>
<td>". $_SESSION['my_data'] ."</td>
</tr>
<tr>
<td> Full name: </td>
<td>". $orderQuery['firstname'] . " " . $orderQuery['lastname'] ."</td>
</tr>
<tr>
<td> Address: </td>
<td> ". $orderQuery['shipping_address_1'] ."<br> ". $orderQuery['shipping_city'] . " " . $orderQuery['shipping_zone'] . " " . $orderQuery['shipping_postcode'] ." </td>
</tr>
<tr>
<td> Card Expiry Date Month: </td>
<td> 08 </td>
</tr>
</tbody>
</table><br>
";
echo $orderInfo/* . $_POST['action']*/; ?>
這是進行調用的腳本。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
var myWindow;
function myFunction() {
myWindow = window.open('', '_blank');
myWindow.document.write("<link rel='stylesheet' type='text/css' href='stylesheet.css'>");
var orderNum;
orderNum = document.getElementsByClassName('summary_value')[0].innerHTML;
orderNum = orderNum.replace("#", "");
$.ajax( { type : 'POST',
data : {'action':orderNum},
url : 'process.php',
success: function ( data ) {
myWindow.document.write( data );
},
error: function ( xhr ) {
alert( "error" );
}
});
myWindow.document.write("<br>");
myWindow.document.write(document.getElementById("payInfor").innerHTML);
}
</script>
<button onclick='myFunction()' class="btn btn-default">Print Pay Info</button>
這可能是一個簡單的問題,但我看不到。
我知道Ajax正在工作,因為它顯示了一些信息($_SESSION['my_data'])
,所以我認為這與我的SQL語句有關,但語法看起來正確。
乍一看,我認為mysqli_select_db($link2, '$DB_USERNAME');
這是錯誤。
它必須是mysqli_select_db($link2, $DB_USERNAME);
或mysqli_select_db($link2, $DB_NAME);
mysqli_select_db()
期望參數一為連接,參數二為數據庫名稱。 就您而言,您正在傳遞'$DB_USERNAME'
。 因此,由於單引號,您的代碼將看起來連接到名為'$DB_USERNAME'
數據庫。 改為將其更改為數據庫名稱。 $DB_NAME
或'database_name'
應該都可以。 在開發模式下,嘗試啟用error_reporting(E_ALL)
來捕獲此類錯誤。
嘗試將此mysqli_fetch_assoc
替換為mysqli_fetch_array
和($link2, "SELECT * FROM table WHERE id='".$_SESSION['my_data']."'")
與($link2, "SELECT * FROM table WHERE id=".$_SESSION['my_data']."")
注意:刪除ID的單引號('')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.