使用php调用db并在js变量中保存值

时间:2013-06-16 16:52:02

标签: php javascript html

我正在尝试使用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 中的字符串 < BR />

我不知道这是什么......

3 个答案:

答案 0 :(得分:2)

试试这样: - 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;

答案 1 :(得分:0)

对于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");
            }
        });

更新:同时修改数据库脚本中的$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);

答案 2 :(得分:0)

我没有测试它,但我想它会正常工作。

在您的客户端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;