我正在尝试使用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 />
我不知道这是什么......
答案 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)
我没有测试它,但我想它会正常工作。
在您的客户端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;