簡體   English   中英

使用php調用db並在js變量中保存值

[英]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);

我沒有測試它,但我想它會正常工作。

在您的客戶端JavascriptHTML

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM