有人能看出这个有问题吗?它正在工作,但现在“genitive”返回为未定义,并且 url 似乎没有被执行。调用会传递一个星座的 ID,例如 42 = Hydra,调用应返回属格,即 Hydrae。
function updateSN(ev) {
ev.preventDefault();
var e = document.getElementById("frm_GreekID");
var gid = e.value;
var text = e.options[e.selectedIndex].text;
var cons = document.getElementById("frm_Constellation");
var ctxt = cons.value;
alert("CVAL = " + ctxt);
$.ajax({
url: "ggenitive.php",
type: "POST",
data: {
c: ctxt,
},
success: function (response) {
// show response for success
let genitive = response.value;
alert("GENITIVE = " + genitive);
document.getElementById("frm_StarName").value = gid + " " + genitive;
},
});
}
在 ggenitive.php 页面中,将 $_POST 更改为 $_GET 并在 url 中传递星座值时,我得到了正确的响应,我知道该函数正在被调用,因为警报框起作用了。
这里是 ggenitive.php 如果有帮助的话
<?php
require( '../db_connect.php' );
include( '../inc/tvms_inc.php' );
//var_dump($_POST);
session_start();
$qga = "SELECT cGenitive FROM `ast_cons` WHERE id = '".$_POST['c']."'";
$rga = mysqli_query( $conn, $qga )or die( "<div class='container'><table class='table'><tr><th>COULD NOT PERFORM QUERY [GENITIVE]</th></tr><tr><td>" . $qga . "</td><tr>" . mysqli_error( $conn ) . "</td></tr></table></div>" );
$row=mysqli_fetch_assoc($rga);
echo $row['cGenitive'];
?>
let genitive = response.value;
您的响应是一个纯字符串,没有
value
属性。
您可以只使用纯字符串响应
success: function(genitive) {
alert("GENITIVE = " + genitive);
document.getElementById("frm_StarName").value = gid + " " + genitive;
}