こんにちは私は、JavascriptとPHPを使用して、初心者のプログラマーです。私はボタンのページを持っており、ahref
それぞれのvendordetails.htmlページのボタンにしようとしています。 vendordetails.htmlに達すると、PHPコードはSELECT * where vendorid = $vendorid
になり、htmlページに*が表示されます。私はボタン#2をクリックすると
私の状況は
、オーバー送信URLは次のようになります。URLパラメータの値を取得する方法は? xmlhttp.status returns 500
http://servername/..../vendordetails.html?vendorid=2
^ページで、私が受け取ることができる「2」getUrlVars()
機能を使用してURLパラメータから。しかし
(alert(decodeURIComponent(getUrlVars()["vendorid"])); // alerts the value '2'.
)
、私は内部サーバーエラーをtheresのAjax呼び出し、xmlhttp.status
戻り「500」の代わりに200の、意味を作り、そして時に送信されたパラメータが正しくない可能性があります。私はそれが私のPHPコードだと大いに疑うが、単に間違いを見つけることができない(それは作業表示ボタンのphpファイルと似ている)、私はいくつかのガイダンスを見つけたい! PHPコードが返さなければならないこと
vendordetails.html
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$conn = new mysqli("localhost", "my_user", "my_password", "world");
$vendorid = $_GET['vendorid'];
$result = $conn->query("SELECT vendorname, vendortype, rebatepercentage WHERE vendorid = '" . $vendorid. "' ");
$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "[") {$outp .= ",";}
$outp .= '{"vendorname":' . $rs["vendorname"] . ',';
$outp .= '"vendortype":"' . $rs["vendortype"] . '",';
$outp .= '"rebatepercentage":"' . $rs["rebatepercentage"] .
'"}';
}
$outp .="]";
$conn->close();
echo($outp);
vendordetails.php
var vendorid = decodeURIComponent(getUrlVars()["vendorid"]);
alert(decodeURIComponent(getUrlVars()["vendorid"])); //alerts 2
function displayvendordetails(){
var xmlhttp = new XMLHttpRequest();
var url = serverURL() + "/vendordetails.php";
url += "?vendorid=" + vendorid.trim();
//also tried using ?vendorid = decodeURIComponent(getUrlVars()["vendorid"])
alert(url); //alerts http://servername/..../vendordetails.php?vendorid=2
xmlhttp.onreadystatechange=function() {
//alert(xmlhttp.readyState); alerts 4
alert(xmlhttp.status); //alerts 500
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert("hello working"); //not alerted, code stops working after if statement
getdisplayResult(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function getdisplayResult(response){
var arr = JSON.parse(response);
var i;
for(i = 0; i < arr.length; i++) {
if (arr[0].vendorname.trim() != ""){
vendorname = arr[0].vendorname;
//var vendorname; declared outside
$("#vendorname").html(arr[0].vendorname);
}
if (arr[0].vendortype.trim() != ""){
vendortype = arr[0].vendortype;
//var vendortype; declared outside
$("#vendortype").html(arr[0].vendortype);
}
if (arr[0].rebatepercentage != ""){
$("#rebatepercentage").html(arr[0].rebatepercentage + "%");
}
}
}
displayvendordetails();
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
function(m,key,value) {
vars[key] = value;
});
return vars;
}
:
[{"vendorname":"Test","vendortype":"Apparel","rebatepercentage":"20"}, {...}, {...}]
追加注:
1. jQueryを使用しないでajax呼び出しを保存してください。私はその形式をよく知っています。
2. serverurl()
あなたはグローバルのjsファイルで定義されていると私はそれが正しい
PHPエラーログに行くと、エラーがありますか? 'var_dump(ini_get( 'error_log'));'を実行すると、エラーがどこに記録されているのかを知ることができ、PHPはブラウザに出力します。また、 'var_dump(ini_get( 'log_errors'));'を実行することでエラーログが有効になっていることを確認してください。 – bugfroggy
私のTelcoは全島に問題がありますので、私のサーバーにログインして今すぐ自分のPHPコードを変更することはできません!私が目を覚ますときにこれを試してみよう! –
まだエコーを取得しようとするとすぐにあなたに戻ってきます –