#javascript #php
#javascript #php
Вопрос:
У меня есть кнопка (кто-то ее создал, и мне нужно отредактировать), которая сохраняется $elisting
в employee.php . Кнопка перейдет к функции javascript с именем edit()
. $elisting
код приведен ниже:
$elisting ="";
$queryf = "select employee.id as myid,jobtitle,info,locid,deptid,gender,dob,emid,employee$cid.name,username,dept,datejoin,location.name as loc from employee
left join location on location$cid.id = employee.locid
inner join department on department.id = employee.deptid order by username
";
$resultf = pg_query($queryf);
$numrows = pg_numrows($resultf);
while ($rowf = pg_fetch_array($resultf)) {
$ct=$ct 1;
$myid = $rowf[myid];
$uname = $rowf[username];
$loc1 = $rowf[loc];
$dept = $rowf[dept];
$date = $rowf[datejoin];
$name = $rowf[name];
$emid = $rowf[emid];
$dob = $rowf[dob];
$gender = $rowf[gender];
$job = $rowf[jobtitle];
$info = $rowf[info];
$datejoin = $rowf[datejoin];
$locid = $rowf[locid];
$deptid = $rowf[deptid];
$newbal = $rowf[newbal];
$templatelist = "";
$tempcn = 0;
$querytemp = "select tid,ltype from leaveatemplate$cid where username='$uname' order by tid desc";
$resulttemp = pg_query($querytemp);
while ($rowtemp = pg_fetch_array($resulttemp)) {
$tempcn = $tempcn 1;
$tid = $rowtemp[tid];
$ltype = $rowtemp[ltype];
if($tempcn=="1")
$templatelist = "$ltype|$tid";
else
$templatelist = $templatelist.","."$ltype|$tid";
}
$elisting=$elisting."<tr><td align="center">$uname</td><td align="center">$loc1</td><td align="center">$dept</td>
<td align="center">$date</td>
<td align="center"><a><button class="btn btn-mini"data-toggle="modal"href="#long"
onClick="javascript:edit('$name','$uname','$emid','$dob','$gender','$job','$info','$datejoin','$locid','$deptid','$myid','$templatelist');"><i class="icon-pencil"></i></a>
Вот edit()
код javascript:
function edit(a,b,c,d,e,f,g,h,i,j,k,l){
document.getElementById("frm").id.value=k;
document.getElementById("frm").name.value=a;
document.getElementById("frm").username.value=b;
document.getElementById("frm").emid.value=c;
document.getElementById("frm").dob.value=d;
setCheckedValue(document.forms['frm'].elements['gender'],e);
document.getElementById("frm").job.value=f;
document.getElementById("frm").info.value=g;
document.getElementById("frm").datejoin.value=h;
document.getElementById('locid').value=i;
document.getElementById('deptid').value=m;
var params = b;
window.location.href="http://192.168.1.5/eleave/employee.php?lapplicant=" params;
var myTemp = l;
var mySplitResult = myTemp.split(",");
for(i = 0; i < mySplitResult.length; i ){
cval = mySplitResult[i];
myval = cval.split("|");
val1 = myval[0];
val2 = myval[1];
document.getElementById('temp' val1).value= val2;
}
Поскольку я не смог попробовать много способов b
входа edit()
, мне нужно найти способ получить $uname $elisting
и отправить его $llisting
в том же PHP-файле (employee.php ), код которого приведен ниже:
$llisting ="";
$ct=0;
//leave code
$ccompassionate = "3";
$cemergency = "4";
$cmaternity = "5";
$cmedical = "6";
$cannual = "2";
//leave value
$compassionate = 2;
$emergency = 5;
$maternity = 60;
$medical = 20;
$lapplicant = $_POST['lapplicant'];
$querye = "select leavetype.id, leavetype.ltype, leaves.leave from leavetype,leaves where username='".$_SESSION["username"]."'";
$resulte = pg_query($querye);
while ($rowe = pg_fetch_array($resulte)) {
$ct=$ct 1;
$lid = $rowe[id];
$ltype = $rowe[ltype];
$leave = $rowe[leave];
if ($lid == $ccompassionate) {
$compassionate_query = pg_query("select ltotal from leave where lapplicant='".$lapplicant."' and ltype='".$ccompassionate."'");
if (count($compassionate_query) > 0) {
foreach ($compassionate_query as $data) {
$total_compassionate = $total_compassionate $data['total'];
$value = $compassionate - $total_compassionate;
}
} else {
$value = $compassionate;
}
$llisting=$llisting."<tr><td align="center">$ct</td><td>$ltype</td><td><input type='text' value='$lapplicant'></td><td align="center">";
$llisting=$llisting."<select name="temp$lid" id="temp$lid" class="span12"><option value="0"> - </option> $tlisting</select>";
$llisting=$llisting."</td></tr>n";
У кого-нибудь есть идея войти $uname
$elisting
и отправить $llisting
?
А также, как можно '$name','$uname','$emid','$dob','$gender','$job','$info','$datejoin','$locid','$deptid','$myid','$templatelist'
$elisting
изменить in на a,b,c,d,e,f,g,h,i,j,k,l
in edit()
, я новичок в Javascript, поэтому я не понимаю, как это может измениться?
Спасибо за помощь..
это код, в котором href="#long"
вызывается:
<div id="long" class="modal hide fade" tabindex="-1" data-replace="true" data-width="760">
<div class="modal-header"><h3>Employee Profile</h3></div>
<div class="modal-body">
<form class="form-horizontal" method="Post" name="frm" id="frm">
Код для вызова html-страницы:
if($msg!="") $alert= "<div class="alert"><i class="icon-info-sign"></i> $msg</div><p>amp;nbsp;</p>";
$source2 = file_get_contents('http://'.$_SESSION["url"].'/cgi-bin/vo/'.$_SESSION["sessid"].'.interface.designer.vo?file=eleave/employee.htm');
$html2 = str_replace("[templateurl]",$templateurl,$source2);
$html2 = str_replace("[alert]",$alert ,$html2);
$html2 = str_replace("[elisting]",$elisting ,$html2);
$html2 = str_replace("[ulisting]",$ulisting ,$html2);
$html2 = str_replace("[locationlisting]",$locationlisting ,$html2);
$html2 = str_replace("[deptlisting]",$deptlisting ,$html2);
$html2 = str_replace("[llisting]",$llisting ,$html2);
$html2 = str_replace("[wfid]","sid=$sid" ,$html2);
echo $html2;
Комментарии:
1. в вашем Javascript это только
function edit(a,b,c,d,e,f,g,h,i,j,k,l){ alert(b); }
то, что вы получаете?2. Все еще отображается та же страница, сэр .. Ничего не меняется.. Я запутался..
3. используйте print_r() на вашем PHP для отладки и console.log(), чтобы увидеть, что вы делаете. и идите шаг за шагом.
4. предупреждение в JS просто выводит окно только на той же странице. Если вы используете Chrome, нажмите Shift Ctrl J, чтобы открыть консоль. Откройте консоль и нажмите, чтобы запустить функцию edit () и посмотреть, получите ли вы что-нибудь.
5. консоль просто ничего не показала, сэр..
Ответ №1:
Пожалуйста, сначала попробуйте базовый, у меня нет проблем с этим.
В JS:
<script>
function TestTriggered(name){
alert("the function triggered!");
alert("My name is: " name);
}
</script>
В части HTML
<input type="button" name="myButton" onClick="javascript:TestTriggered('John');" value="Please click"/>
Пожалуйста, попробуйте это сначала и посмотрите, как это работает.
Комментарии:
1. Это не ответ
2. да, я знаю, поскольку код длинный, он не очень подходит для раздела комментариев. Это должно показать, как все работает, тогда мы можем соответствующим образом расширить это до вопроса пользователя.
3. Я попытался поместить ваш код, и он показал пустую страницу, а
NetworkError: 500 Internal Server Error - http://192.168.1.5/eleave/employee.php?sid=SID421464131stwptwbply497.
затем я попытался отредактировать свой код:<input type='button' class="btn btn-mini"data-toggle="modal"href="#long" onClick="javascript:testtriggered('Nana');">
, и он показал ту же страницуedit()
без данных внутри текстового поля. и произошла ошибка:ReferenceError: testtriggered is not defined.
Связано ли это сhref="#long"
? long — это идентификатор для div, содержащий форму и данные из $elisting.4. сначала вы должны определить функцию
testtriggered
. удалитьhref
, поскольку он используется для перехода на другие страницы5. У меня есть сэр, на странице html.. И когда я удалил
href='#long'
, ничего не появилось, только ошибка в консоли.ReferenceError: testtriggered is not defined