2017-12-03 9 views
0

どこにも見つかりませんでしたが、これは私が思うとユニークな問題です。投稿の際に変数の最後に+(プラス)がありません

B +、C +、D +などのプラスのグレードを追加したいと考えています。私はA-、B-、C-およびD-または他の任意の等級A、B、C、D、Fを加えることができる。しかし、プラスで終わる変数を追加したいときは消えてしまいます。誰かが自分のコードで問題を見ることができますか?

のindex.php

の小さな一部
var subjectone = $('#selectedsubjectone :selected').val(); 
var courseone = $('#courseListone').val(); 
var gradeone = ($('#selectedGradeOne :selected').val()); 

var div = document.getElementById("dom-target"); 
var username = div.textContent; 
username = username.trim().replace(/ /g, '%20'); 

if(gradeone != 'gradesvalue'){ 
    var enrolledone ="username="+username+"&subject="+subjectone+"&grade="+gradeone+"&course="+courseone;   //I CHECK THERE IS NO PROBLEM HERE. IT SHOWS WITH PLUS. 
     $.ajax({ 
     type: "POST", 
     url: "updatecourse.php", 
     data: enrolledone, 
     success: function(data) {} 
     }); 

更新のためにそれらのいずれかを挿入するためのそれらの2つの類似のphpファイル1があります。 これは、PHPのパートBの+で

<?php 
include_once "connection.php"; 

if(isset($_POST["username"]) && isset($_POST["subject"]) && isset($_POST["course"]) && isset($_POST["grade"])){ 

    $nick = urldecode($_POST["username"]); 
    $subject=urldecode($_POST["subject"]); 
    $course=urldecode($_POST["course"]); 
    $grade=urldecode($_POST["grade"]); 
    echo "$nick - $subject - $course - $grade"; //IT SHOWS B, NOT B+ IN HERE. 
    $prep = $con->prepare("UPDATE enrolledtable SET grade=? WHERE nickname=? AND subject=? AND course=?"); 

    $prep->bind_param("ssss", $grade, $nick, $subject, $course); 
    $send = $prep->execute(); 

    if ($send == TRUE) { 
     echo "Courses added successfully"; 
     //header('Location: index.php'); 
     exit(); 
    } else { 
     echo "Error: " . $con->error; 
     //header('Location: index.php'); 
     exit(); 
    } 
    }?> 

updatecourse.phpですがBになり、C +はC.は、PHPでの問題は何ですかなりましたか?または、jsでデータ型を変更する必要があります。

+1

' +をそれを除去している推測しているURLで特別な意味を持っています。 – tkausl

+0

どうすればその問題を解決できますか?あなたはこの問題について助けてくれますか – ozan

答えて

1

はどうなりますか?

プラス記号がURLエンコード空間であり、$_POST変数がデコードを必要としないので、私はあなたが `ここに偶然

+0

これで動作します。あなたと他の人のために本当にありがとう。 – ozan

0

JavaScript関数encodeURIComponentを使用して変数値をエンコードします。

+0

あなたの努力に感謝します。しかし、同じ問題が続く。 – ozan

1

あなたが直面している問題は、クエリ内の+がスペースとして解釈されることです。 JSs encodeURIComponent()を使って成績をエンコードするだけです。これに

$grade=urldecode($_POST["grade"]);

$grade=$_POST["grade"];あなたはこれを変更する場合

var subjectone = $('#selectedsubjectone :selected').val(); 
var courseone = $('#courseListone').val(); 
var gradeone = ($('#selectedGradeOne :selected').val()); 

var div = document.getElementById("dom-target"); 
var username = div.textContent; 
username = username.trim().replace(/ /g, '%20'); 

if(gradeone != 'gradesvalue'){ 
    var enrolledone ="username="+username+"&subject="+subjectone+"&grade="+encodeURIComponent(gradeone)+"&course="+courseone;   //I CHECK THERE IS NO PROBLEM HERE. IT SHOWS WITH PLUS. 
     $.ajax({ 
     type: "POST", 
     url: "updatecourse.php", 
     data: enrolledone, 
     success: function(data) {} 
     }); 
+0

あなたの努力に感謝します。しかし、同じ問題が続く。 encodeURIComponentでenocodeURIComponentを編集できますか? – ozan

+0

右に、タイプミスを修正しました。これはまだあなたにちょうど "B"を与えますか? –

+0

はい。 '$ grade = urldecode($ _ POST [" grade "]);'が間違っています。私はそれを '$ grade = $ _ POST [" grade "]で変更します。 ' – ozan

関連する問題