2016-07-22 17 views
0

テーブルの各行には[編集]ボタンがあります。PHPでJavaScript変数を使用するときの未定義インデックス

[編集]ボタンをクリックして行番号を取得しようとしています。 JavaScriptで成功するのですが、PHPではどうしたらいいのか分かりません。

は、だから私はPHPにJSから変数を渡すように考え、いくつかの理由から、私はエラーを取得する

未定義のインデックス: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']; 
} 

私の代わりに'window.location.href = "?selectedRow="+ num;'.のAJAXを使用することも試してみました:

    '$.ajax({'. 
       'type: "POST",'. 
       'url: "index.php",'. 
       'data: "selectedRow=" + num'. 
      '});'. 
+0

HTMLコードとPHPコードを区切ります。デバッグや読み込みがより簡単になります。 – msantos

+0

が疲れました。 このページのすべてのデータは、PHPのSQLからのものです。 – Shachar87

+0

JS変数をPHPに送信することは決してありません。 –

答えて

1
テキスト以下でwhileループでのアンカータグのhref値を変更し

<a href="?editRow=true"> <---> <a href="javascript:;"> 

そして今、それはあなたの状態でファイルを動作するスクリプト

'window.location.href = "?selectedRow="+ num;'. <---> 'window.location.href = "?editRow=true&selectedRow="+ num;'. 

であなたのwindow.location.hrefを交換してください。

0

私は、テストを行うために続けて誰かが自分のコンピュータに私のコードをテストし、私に言いました私のコードは動作し、私はテストを続け、最終的には動作する方法を見つけました。

私はこの行を削除しました:'<a href="?editRow=true">'.テーブルから。

私はこのようなselectedRowでJS関数にeditRow =真を追加:私が問題だったのかわからないので、とにかくそれは両方の方法を動作するはず'window.location.href = "?editRow=true&selectedRow="+ num;'.

そして今、その作業、。

関連する問題