php中的Javascript函数,不起作用
我有一个网页,在文本框中显示数据库中的行。我制作了一些按钮,其中一个按钮在动态单击时会创建一个带有输入框的行。因此,不会触发使用javascript编写的用于创建这些框的php中的Javascript函数,不起作用,javascript,php,mysql,Javascript,Php,Mysql,我有一个网页,在文本框中显示数据库中的行。我制作了一些按钮,其中一个按钮在动态单击时会创建一个带有输入框的行。因此,不会触发使用javascript编写的用于创建这些框的onClick函数。concole抛出的错误是未定义的addInput() <?php include('adodb/adodb.inc.php'); echo ' <h1>\n' . ' Revenue Management Solution\n' .
onClick
函数。concole抛出的错误是未定义的addInput()
<?php
include('adodb/adodb.inc.php');
echo ' <h1>\n' .
' Revenue Management Solution\n' .
' </h1>\n';
echo ' <img alt = "mxpresso logo"\n' .
' src = "http://mxpresso.com/images/logo.png"\n' .
' style = "width : 171px; height : 108px;">\n\n';
echo ' <h2>\n' .
' 1. To See existing records\n' .
' </h2>\n';
$db = NewADOConnection( 'mysql' );
$db -> Connect( "127.0.0.1",
"vcc",
"abcd4",
"vcc" );
$sql = "SELECT * FROM rev";
$result = $db->Execute( $sql );
if ( $result === false )
die( "failed2" );
$records = array();
$count = $result -> RecordCount();
echo "Total Records Found :".$count."<br>";
if ( $count > 0 )
{
while ( !$result -> EOF )
{
$offerId = $result -> fields[ 0 ];
$affId = $result -> fields[ 1 ];
$status = $result -> fields[ 2 ];
$deduction = $result -> fields[ 3 ];
echo ' <form action = "updatecopy.php"\n' .
' method = "get"\n' .
' target = "_blank">\n' .
' <div id = "dynamicInput">\n' .
' <table id = "dataTable"\n' .
' class = "form">\n' .
' <tbody>\n' .
' <tr>\n' .
' <td>\n' .
' <input checked = "checked"\n' .
' required = "required"\n' .
' name = "chk[]"\n' .
' type = "checkbox">\n' .
' </td>\n\n';
echo ' <td>\n' .
' <h4>\n' .
' OfferID\n' .
' </h4>\n\n';
echo ' <input name = "update_for_offerid"\n' .
' type = "text"\n' .
' value = ' .
$offerId .
'>\n' .
' </td>\n\n';
echo ' <td>\n' .
' <h4>\n' .
' AffId\n' .
' </h4>\n\n';
echo ' <input name = "update_for_affid"\n' .
' type = "text"\n' .
' value = ' .
$affId .
'>\n' .
' </td>\n\n';
echo ' <td>\n' .
' <h4>\n' .
' deduction :\n' .
' </h4>\n\n';
echo ' <input name = "deduct"\n' .
' type = "text"
' value = ' .
$deduction .
'>\n' .
' </td>\n\n';
echo ' <td>\n' .
' <h4>\n' .
' Status\n' .
' </h4>\n\n';
echo ' <input name = "status"\n' .
' type = "text" ' .
' value = ' .
$status .
'>\n' .
' </td>\n' .
' </tr>\n' .
' </tbody>\n' .
' </table>\n\n';
echo ' <input type = "submit"\n' .
' value = "Update Entry">\n' .
' </div>\n' .
' </form>\n\n';
$rec = array( "offerId" => $offerId,
"affiliate_id" => $affId,
"status" => $status,
"deduction" => $deduction );
array_push( $records,
$rec );
$result->MoveNext();
}
}
echo ' <input type = "button"\n' .
' onClick = "addInput(\'dynamicInput\')"\n' .
' value = "Add another text input">\n\n';
echo ' <script language = "Javascript"\n' .
' type = "javascript">\n' .
' var counter = 1;\n' .
' var limit = 3;\n\n';
echo ' function addInput( divName )\n' .
' {\n' .
' if ( counter == limit )\n' .
' {\n' .
' alert( "You have reached the limit of adding " + counter + " inputs" );\n' .
' }\n' .
' else\n' .
' {\n' .
' var newtable = document.createElement( "dataTable1" );\n' .
' var td1 = document.createElement(\'td\');\n' .
' var td2 = document.createElement(\'td\');\n' .
' var td3 = document.createElement(\'td\');\n'
' var tr = document.createElement( \'tr\' );\n\n';
echo ' td1.innerHTML = \'<h4>Entry</h4>\' + \'<br><input name = "myI" type = "text">\';\n\n';
echo ' td2.innerHTML = \'<h4>Entry</h4>\' + \'<br><input name = "myI" type = "text">\';\n\n';
echo ' td3.innerHTML = \'<h4>Entry</h4> \' + \'<br><input name = "myIn" type = "text">\';\n\n';
echo ' tr.appendChild( td1 );\n' .
' tr.appendChild( td2 );\n' .
' tr.appendChild( td3 );\n\n';
echo ' newtable.appendChild( tr );\n\n';
echo ' document.getElementById( divName ).appendChild( newtable );\n\n';
echo ' counter++;\n' .
' }\n' .
' </script>\n';
?>
您缺少一个
:
echo '<html
echo'javascript区分大小写,应该是onclick而不是onclick。
我并没有深入了解您的代码,但如果这不能解决问题,请告诉我,我太笨了,无法发表评论。虽然这不是一个完整的答案,但我相信它会让您一帆风顺。如果要在浏览器中交付此页面,然后使用您喜爱的浏览器的调试工具“检查”,您可能会发现javascript没有在浏览器中注册为“脚本”源,而只是元素中未显示的文本。这当然会使它不可执行,因为事件没有触发。addInput()未定义,因为它位于未注册的脚本中
这是一种复杂的分层方式。FWIW,我的解决方案是在调用者->中声明一个JS脚本,该脚本有一个创建新页面的函数(当然使用JS),>将所有元素附加到定义的脚本中,脚本的“源”是一个单独的JS文件。这还允许我使用IDE在单独的文件中维护脚本
有几种方法可以将脚本作为元素“发布”,但需要将其发布到DOM。不要将所有内容都加粗。你也应该重新考虑你的策略。在PHP内的HTML内的JavaScript内分层HTML并不是最佳方案。记住,你可以结束你的@tadman,而不是长篇大论的echo
,我该怎么做呢?不,这不行,我的javascript可以工作,当我用一个简单的html代码执行它时。问题是将它与phpI一起使用,假设/select不应该存在?我正在测试你的代码,我会看看我得到了什么请这样做,让我知道顺便说一句-为什么所有的echo都在html/body之外?你能把ctrl+u的结果添加到你的帖子中吗?如果我回显我的html/js代码,html标签实际上不是必需的。您是否可以检查问题是在调用somwhere还是在函数内部