ошибка в функции json при сохранении данных в базу данных

0

Я много пробовал, но мне не удалось выяснить, что не так с этой функцией, чтобы сохранить два значения в базе данных. Он отлично работает для другой функции, чтобы сохранить одно значение. Здесь очень странно. Иногда отправляйте значение "parent" и иногда прекращаете его отправку, но никогда не отправляете значение 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
Лучший ответ

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, поскольку они ненадежны. Если ваш script ожидает данные от POST, то извлеките эти значения из $_POST.

  • 0
    Я пробовал оба, но это не имеет значения, Да, чего не хватало, я добавляю это, но это также не имеет значения.
  • 0
    ХОРОШО. Затем пусть send.php сделает «die (var_export ($ _ POST, TRUE))» прямо в начале. Каков результат при отправке данных через XHR?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню