この質問に答えようとしたStackOverflowを含むいくつかのWebサイトがあります。しかし、私はそれらを理解していません。私は誰かが私が間違っていることを私に見せて、非常に簡単な言葉でそれを説明することを望んでいます...私が理解するために。アンカータグからjavascript関数を実行するにはどうすればよいですか?
タグからjavascript関数を実行するにはどうすればよいですか?
私はこのHTMLを持っている:このエラーで、
<span class="dropdown">
<span class="dropbtn">Reports || </span>
<div class="dropdown-content">
<a href="NCMMaps.php" target="_blank">Map All Members</a>
<a href="#" onclick="ics214(); return false;">ICS214</a>
</div>
</span>
'すべてのメンバーの地図は' 素晴らしい作品が、 'ICS214は' 失敗:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND logdate = (SELECT min(logdate) FROM NetLog WHERE netID =)' at line 8' in /var/www/html/sbr/ics214.php:24 Stack trace: #0 /var/www/html/sbr/ics214.php(24): PDO->query('SELECT min(logd...') #1 {main} thrown in /var/www/html/sbr/ics214.php on line 24
私のJavascriptがこのようになります。
function ics214() {
var str = document.getElementById("select1").value;
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("netBody").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","ics214.php?q="+str,true);
xmlhttp.send();
}
下記はPHP/MySQLの部分です。しかし、それは正常に動作し、必要なレポートを生成します。私はここでエラーが表示されません。しかし、おそらく私は 'Q'の値を渡している方法はエラーですか?
<?php
ini_set('display_errors',1);
error_reporting (E_ALL^E_NOTICE);
require_once "dbConnectDtls.php";
$q = $_GET["NetID"];
$sql1 = ("SELECT min(logdate) AS minlog,
DATE(min(logdate)) AS indate,
TIME(min(logdate)) AS intime,
DATE(max(timeout)) AS outdate,
TIME(max(timeout)) AS outtime,
activity, fname, lname, netcontrol, callsign
FROM NetLog
WHERE netID = $q AND logdate = (SELECT min(logdate)
FROM NetLog
WHERE netID = $q) ");
foreach($db_found->query($sql1) as $row) {
$fname = $row[fname]; $lname = $row[lname]; $activity = $row[activity];
$indate = $row[indate]; $outdate = $row[outdate]; $netcntl = $row[callsign];
$intime = $row[intime]; $outtime = $row[outtime];
if ($row[netcontrol] == "PRM") {$netcontrol = "Net Control Operator"; $netopener = $row[callsign];};
}
?>
'あなたはSQL構文にエラーがあります.' - これはjavascriptエラーではなく、' ics214() 'を間違っていない形で実行しています...エラーは' ics214.php'にありますあなたは –
を表示することを怠っており、この –
のためのphpは@JaromandaXが簡単な言葉で言ったように、あなたは ''ics214()'というjavascript関数を持っています。あなたが 'ICS214'リンクをクリックすると、この関数が起動し、この関数で' ics214.php'ファイルへの 'ajax'呼び出しがあります。あなたの 'html'の' select1'要素の値を 'q'という名前のパラメータを' ics214.php'ファイルに送ります。今度はJavaScriptのこの行で 'document.getElementById(" netBody ")。innerHTML = xmlhttp.responseText;'あなたの 'php'ファイルの応答を表示しています。エラーがあるので、そのエラーが表示されます。 – EhsanT