2017-06-18 3 views
-1

私は、フォームを送信して、2つの異なるリンクがあり、phpファイルの削除と編集を行っていますが、リンクがラジオボタンの値をphpファイルに送信しないことに気付きました特にPHPファイルを削除する。しかし、私がボタンへのリンクを変更すると、値が提出されました。私はボタンのタグを使用したくないのですが、どうすれば私のリンクを使ってphpファイルに値を渡すことができますか?ここでJavascriptでフォームを送信できないリンク

は形式です:ここでは

<form action="del_cn_rec.php" method="POST" id="consignments" > 
       <table id="example1" class="table table-hover table-bordered table-striped"> 
       <thead> 
       <tr> 
        <th>ID</th> 
        <th>Consignment No</th> 
        <th>Sender</th> 
        <th>Reciever</th> 
        <th>Pickup Date/Time</th> 
        <th>Msg_Status</th> 
        <th>Status</th> 
        <th>Action</th> 
        <th>Action</th> 
       </tr> 
       </thead> 
       <tbody> 
       <?php 

               $sqlc="SELECT * FROM consignments"; 
               $resultc= mysql_query($sqlc) or die(mysql_error()); 
               while($rwsc= mysql_fetch_array($resultc)){ 
               echo "<tr>"; 
                echo "<td><input type='radio' class='flat-red' name='cn_id' value=".$rwsc[0]; 
                echo " /></td>"; 
                echo "<td>".$rwsc[1]."</td>"; 
                echo "<td>".$rwsc[16]." ".$rwsc[17]."</td>"; 
                echo "<td>".$rwsc[21]." ".$rwsc[22]."</td>"; 
                echo "<td>".$rwsc[6]." ".$rwsc[7]."</td>"; 

                $sqli='SELECT * FROM admin_inbox WHERE cn="'.$rwsc[1].'"'; 
                $resulti= mysql_query($sqli); 
                $rwsi= mysql_fetch_array($resulti); 
                $mstatus= $rwsi[4]; 
                if("$mstatus" === "Unreplied"){ 
                $moutput = "<span class='label label-danger'><i class='fa fa-circle'></i> Unreplied</span>"; 
                } 
                if("$mstatus" === "Replied"){ 
                $moutput = "<span class='label label-success'><i class='fa fa-check-circle'></i> Replied</span>"; 
                } 
                if("$mstatus" === ""){ 
                $moutput = "<span class='label label-warning'><i class='fa fa-circle-o'></i> No Message</span>"; 
                } 
                echo "<td>".$moutput."</td>"; 

                $status= $rwsc[9]; 
                if("$status" === "Delivered"){ 
                $output = "<span class='label label-success'><i class='fa fa-check-square-o'></i> Delivered</span>"; 
                } 
                if("$status" === "On Hold"){ 
                $output = "<span class='label label-danger'><i class='fa fa-hand-stop-o'></i> On Hold</span>"; 
                } 
                if("$status" === "Arrived"){ 
                $output = "<span class='label label-primary'><i class='fa fa-motorcycle'></i> Arrived</span>"; 
                } 
                if("$status" === "In Transit"){ 
                $output = "<span class='label label-warning'><i class='fa fa-truck'></i> In Transit</span>"; 
                } 
                echo "<td>".$output."</td>"; 

                echo "<td><a href=\"javascript:{}\" onclick=\"askForEdit_Rec()\"><span class=\"label label-primary\"><i class=\"fa fa-edit\"></i> Edit Rec.</span></a></td>"; 
                echo "<td><a href=\"javascript:{}\" onclick=\"askForDelete_Rec()\"><span class=\"label label-danger\"><i class=\"fa fa-times\"></i> Delete Rec.</span></a></td>"; 
                echo "</tr>";} 
       ?> 
       </tbody> 
       <tfoot> 
       <tr> 
        <th>ID</th> 
        <th>Consignment No</th> 
        <th>Sender</th> 
        <th>Reciever</th> 
        <th>Pickup Date/Time</th> 
        <th>Msg_Status</th> 
        <th>Status</th> 
        <th>Action</th> 
        <th>Action</th> 
       </tr> 
       </tfoot> 
       </table> 
      </form> 
      </div> 
      <script> 
form=document.getElementById("consignments"); 
function askForEdit_Rec() { 
    form.action = <?php echo json_encode($urlc); ?>; 
    form.submit(); 
} 

</script><script> 
form=document.getElementById("consignments"); 
function askForDelete_Rec() { 
    form.action="del_cn_rec.php"; 
    form.submit(); 
} 

</script> 

は削除のPHPファイルです:

<?php 
session_start(); 
include '_inc/dbconn.php'; 
$sql="SELECT * FROM admin WHERE id='1'"; 
$result= mysql_query($sql); 
$rws= mysql_fetch_array($result); 
$email_1= $rws[3]; 
$email_2= $rws[4]; 
$phone= $rws[5]; 
$address= $rws[6]; 
$url= $rws[7]; 
if(!isset($_SESSION['admin_login'])) 
header("location:$url/server-side"); 
?> 
<?php 
      $id= mysql_real_escape_string($_REQUEST['cn_id']); 
      $sql1="SELECT * FROM consignments WHERE id='$id'"; 
      $result1= mysql_query($sql1); 
      $rwsn= mysql_fetch_array($result1); 
      $cn= $rwsn[1]; 

      $sql2="DROP TABLE IF EXISTS ".$cn."status "; 
      mysql_query($sql2) or die(mysql_error()); 

      $sql3="DROP TABLE IF EXISTS ".$cn."msg "; 
      mysql_query($sql3) or die(mysql_error()); 

      $sql6 = mysql_query("SELECT * FROM admin_inbox WHERE cn='$cn'"); 
      if (mysql_fetch_row($sql6)){ 
      $sql4="DELETE FROM admin_inbox WHERE cn='$cn'"; 
      mysql_query($sql4) or die(mysql_error()); 
      } 

      $sql5="DELETE FROM consignments WHERE id='$id' AND cn='$cn'"; 
      mysql_query($sql5) or die(mysql_error()); 

      //Consignment Remove Success Msg 
      $msg = "<i class=\"fa fa-check\"></i> Consignment: $cn Has Been Successfully Deleted!"; 
      header("Location:$url/server-side/consignments?msg=$msg"); 

?> 
+0

新しいコードを書いているなら、** _ please_は 'mysql_ *'関数**を使わないでください。彼らは古くて壊れていて、PHP 5.5では廃止されました(セキュリティアップデートをもはや受け取っていなくなっています)、PHP 7では完全に削除されました。['PDO'](https://secure.php.net/manual /en/book.pdo.php)または['mysqli_ *'](https://secure.php.net/manual/en/book.mysqli.php)を_prepared statements_と_parameter binding_で置き換えてください。詳細については、http://stackoverflow.com/q/12859942/354577を参照してください。 – Chris

答えて

0

del_cn_rec.phpこれは一般的にあなたが任意のエラーや通知を持っていないことを確認だけで、動作するはずですあなたのPHPログ、または生成されたHTML、またはブラウザコンソールのjavascriptエラーが含まれます。ラジオボタンの値がhtmlに入力されていることを確認します(おそらく、SQLから間違った結果が得られている可能性があります)。

また、ラジオボタンを最初に選択してから、「削除」または「編集」リンクをクリックした後でなければ、すべての行にリンクが張られているので少し混乱します。ラジオボタンは選択されたときにのみ値を送信し、そうでない場合はPOSTデータにも表示されません。

最初にラジオボタンを選択せず​​にすべての行のリンクを使用する場合は、askForDelete_Rec()関数のパラメータとしてcn_idを渡してから、そこで使用する必要があります。 input type = "hidden"はそれには便利で、GETパラメータとしてアクションに追加するだけです。

+0

ありがとうございます。あなたの説明は役に立ちました。 –

関連する問題