ошибка в функции json при сохранении данных в базу данных - PullRequest
0 голосов
/ 30 ноября 2010

Я много пробовал, но мне не удалось выяснить, что не так с этой функцией, чтобы сохранить два значения в базе данных.Он работал нормально для другой функции, чтобы сохранить одно значение.Это ведет себя очень странно здесь.Иногда отправляет «родительское» значение, а иногда прекращает его отправку, но никогда не отправляет значение msg.Вот функция.Он отлично работает для одного входа, т.е. родительского, но проблемы начинаются с добавления второго ввода.

<script> 
function ADDLISITEM(form)
{ 
var parent = form.txtInput.value;
    var msg    = form.msgInput.value;
    form.txtInput.value = "";
    form.msgInput.value = "";
    var url = "send_mysql.php"
var request = null;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
request=new XMLHttpRequest();
 }
else
{// code for IE6, IE5
request=new ActiveXObject("Microsoft.XMLHTTP");
}
request.open("POST", url, true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.setRequestHeader("Connection", "close");
request.onreadystatechange = function(){
    if (request.readyState == 4) {
        if (request.status == 200) {
            //alert('POST');
    } else {
        alert(request.status); // fails here
    }
    }
}
request.send("parent=" + encodeURIComponent(parent).replace(/%20/g, '+')+"&msg=" + 
    encodeURIComponent(msg).replace(/%20/g, '+'));
}
</script>

Это send.php

$ username = "babar";
$ password = "k4541616";
$ hostname = "localhost";
$ dbh = mysql_connect ($ hostname, $ username, $ password) или die («Невозможно подключиться
к MySQL»);
$ selected = mysql_select_db («spec», $ dbh) или die («Не удалось»выберите first_test ");

  //die(var_export($_POST,TRUE));

  $parent = $_POST['parent'];
  $msg = $_POST['msg'];
  $name   = 'Akhtar Nutt';
  //$parent2 = json_decode($parent);
  $msg_ID = '2q7b2sfwwe';
  //$msg2    = json_decode($msg);
  $query  =  "INSERT INTO msg2_Qualities(id,name,msg,msg_id,parent) VALUES  
  ('','$name','$msg','$msg_ID','$parent')";
    if(!mysql_query($query, $dbh))
        {die('error:' .mysql_error())
      ;}

?>

1 Ответ

2 голосов
/ 30 ноября 2010

Alter

request.send("parent=" + encodeURIComponent(parent).replace(/%20/g, '+')+"msg=" + encodeURIComponent(msg).replace(/%20/g, '+'));

до:

request.send("parent=" + encodeURIComponent(parent).replace(/%20/g, '+')+"&msg=" + encodeURIComponent(msg).replace(/%20/g, '+'));

Вам не хватает разделителя аргументов & в строке запроса ...

Вы также можете отказаться от использования значений в $_REQUEST, так как они ненадежны. Если ваш сценарий ожидает данные от POST, извлеките эти значения из $_POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...