我表格中的每一行都有一个编辑按钮。
我尝试通过单击“编辑”按钮来获取行号。我成功地在JavaScript中做到了,但在PHP中我不知道如何。
所以我想把变量从JS传递给PHP,并且由于某种原因我得到了一个错误
未定义的索引:selectedRow
当我使用它时:$_GET['selectedRow']
;
最终目标是制作特定的行编辑器。
所以,如果你有不同的想法来完成它,我想听听。
我的代码的相关部分:
echo '<table width = "100%" id = "contactsTable"><tr>'.
'<th style=" width:3em; ">עריכה</th>'.
'<th style=" width:7em; ">אזור</th>'.
'<th style=" width:7em; ">תפקיד</th>'.
'<th style=" width:15em; ">הערה</th>'.
'<th style=" width:15em; ">אימייל</th>'.
'<th style=" width:10em; ">טלפון</th>'.
'<th style=" width:15em; ">כתובת</th>'.
'<th style=" width:10em; ">שם מלא</th>';
while($row = mysql_fetch_array($query)){
echo '<tr><td onclick="selectedRow(this)">'.
'<a href="?editRow=true">'.
'<input type="image" src="../image/edit-icon.png" alt="עריכה" width="30" height="30">'.
'</a></td>'.
'<td>'.$row['area'].'</td>'.
'<td>'.$row['role'].'</td>'.
'<td>'.$row['note'].'</td>'.
'<td>'.$row['email'].'</td>'.
'<td>'.$row['phoneNumber'].'</td>'.
'<td>'.$row['address'].'</td>'.
'<td>'.$row['fullName'].'</td>'.
'</tr>';
}
echo '</table>';
echo '<script>';
echo 'function selectedRow(obj) {'.
'var num = obj.parentNode.rowIndex - 1;'.
'alert ("selectedRow: "+num);'.
'window.location.href = "?selectedRow="+ num;'.
'}';
echo '</script>';
}
if(isset($_GET['editRow'])){
echo 'selectedRow :'. $_GET['selectedRow'];
}
我还尝试使用AJAX而不是'window.location.href = "?selectedRow="+ num;'.
:
'$.ajax({'.
'type: "POST",'.
'url: "index.php",'.
'data: "selectedRow=" + num'.
'});'.
答案 0 :(得分:1)
使用以下文本更改while循环中的锚标记href值:
<a href="?editRow=true"> <---> <a href="javascript:;">
现在替换脚本
中的window.location.href'window.location.href = "?selectedRow="+ num;'. <---> 'window.location.href = "?editRow=true&selectedRow="+ num;'.
它将在你的条件下工作。
答案 1 :(得分:0)
我继续做测试,有人在他的计算机上测试我的代码并告诉我我的代码有效,我继续我的测试并最终找到它的工作方式。
我从表中删除了这一行:'<a href="?editRow=true">'.
。
我使用 selectedRow 将 editRow = true 添加到JS函数中,如下所示:'window.location.href = "?editRow=true&selectedRow="+ num;'.
现在它的工作,无论如何它应该双向工作,所以我不知道问题是什么。