[英]Call db using php and hold value in js variable
我試圖使用php和js從mysql加載值。 以下是單擊按鈕時調用的功能。
<script type="text/javascript">
function ab(){
var MyJSNumVar = "<?php
$orderid = $_GET['orderid'];
$result="";
$db = mysqli_connect("localhost", "root", "");
mysqli_select_db($db, "mydba");
$sql = "SELECT amount FROM mydba.fl_placed_order where orderid='".$orderid."'";
$result = mysqli_query($db, $sql) or die(mysqli_error($db));
while ($info = mysqli_fetch_array($result)) {
$result = stripslashes($info['orderid']);
}
echo $result;
?>";
}
</script>
身體代碼是
<button onclick="ab()">mittal</button>
在瀏覽器中,頁面為空,控制台中沒有錯誤。 即使我看不到按鈕。 這段代碼出了什么問題......
根據您的專家建議我改變了我的代碼....
<script type="text/javascript">
function ab(){
$.ajax({
type: 'get',
url: "javascript.php/orderid=CF450AA4",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg, status) {
alert("successful");
console.log(msg);
},
error: function (msg, status) {
console.log("failure");
console.log(msg);
alert("failure");
}
});
}
</script>
我的javascript.php文件是
<?php
$orderid = $_GET['orderid'];
$result="";
$db = mysqli_connect("localhost", "root", "");
mysqli_select_db($db, "givem6la_shaleenmittal");
$sql = "SELECT amount FROM givem6la_shaleenmittal.fl_placed_order where orderid='".$orderid."'";
$result = mysqli_query($db, $sql) or die(mysqli_error($db));
while ($info = mysqli_fetch_array($result)) {
$result = stripslashes($info['orderid']);
}
echo $result;
?>
回應是
注意 :未定義的索引:第2行的C:\\ xampp \\ htdocs \\ javascript.php中的 orderid
可捕獲的致命錯誤 :無法將類mysqli_result的對象轉換為第11行的C:\\ xampp \\ htdocs \\ javascript.php中的字符串
我不知道這是什么......
試試這樣: - url: "javascript.php?orderid=CF450AA4"
<script type="text/javascript">
function ab(){
$.ajax({
type: 'get',
url: "javascript.php?orderid=CF450AA4",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg, status) {
alert("successful");
console.log(msg);
},
error: function (msg, status) {
console.log("failure");
console.log(msg);
alert("failure");
}
});
}
</script>
編輯: -
您的查詢是: -
$sql = "SELECT amount FROM givem6la_shaleenmittal.fl_placed_order where orderid='".$orderid."'";
您正在從表中選擇amount
字段,並且您嘗試這樣做: -
while ($info = mysqli_fetch_array($result)) {
$result = stripslashes($info['orderid']);
}
你不會得到$info['orderid']
價值,因為你沒有從你的表中檢索價值。 您還必須從該表中選擇orderid
。 可能這會起作用: -
$sql = "SELECT amount,orderid FROM givem6la_shaleenmittal.fl_placed_order where orderid='".$orderid."'";
$result = mysqli_query($db, $sql) or die(mysqli_error($db));
while ($info = mysqli_fetch_array($result)) {
$result = stripslashes($info['orderid']);
}
echo $result;
對於dataType: "json"
,所需的結果應該作為json值從php腳本發送。 您可以在php中使用json_encode()
將結果轉換為json
。 在您的腳本中將其更改為
echo json_encode($result);
也在你的JavaScript中
$.ajax({
type: 'get',
url: "javascript.php",
data: "orderid=CF450AA4", //add this line
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert(response);
},
error: function (response) {
console.log("failure");
console.log(response);
alert("failure");
}
});
更新:還要在db腳本$info = mysqli_fetch_array($result,MYSQLI_ASSOC)
$info = mysqli_fetch_array($result)
行修改為$info = mysqli_fetch_array($result,MYSQLI_ASSOC)
。 並且
$sql = "SELECT amount,orderid FROM givem6la_shaleenmittal.fl_placed_order where orderid='$orderid'";
while ($info = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
$final_result = stripslashes($info['orderid']);
}
echo json_encode($final_result);
我沒有測試它,但我想它會正常工作。
在您的客戶端Javascript
和HTML
:
<button onclick="ab(<?php echo $_GET['orderid']; ?>)">mittal</button>
<script type="text/javascript">
MyJSNumVar = null;
function ab ( _orderid ) {
$.get("javascript.php", { orderid: _orderid }).done( function( data ) {
MyJSNumVar = data;
alert( MyJSNumVar );
});
}
// use MyJSNumVar anywhere else you wish ...
</script>
在您的服務器端PHP
:
<?php
$orderid = $_GET['orderid'];
$db = mysqli_connect('localhost', 'root', '');
mysqli_select_db($db, 'mydba');
$sql = 'SELECT amount
FROM mydba.fl_placed_order
WHERE orderid = "' . $orderid . '"
LIMIT 1';
$result = mysqli_query($db, $sql) or die(mysqli_error($db));
$info = mysqli_fetch_array($result, MYSQLI_NUM);
echo $info[0];
exit;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.