在PHP中使用JavaScript变量时未定义的索引

时间:2016-07-22 23:51:08

标签: javascript php jquery ajax

我表格中的每一行都有一个编辑按钮。

我尝试通过单击“编辑”按钮来获取行号。我成功地在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'.
             '});'.

2 个答案:

答案 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;'.

现在它的工作,无论如何它应该双向工作,所以我不知道问题是什么。