Так что я, должно быть, смотрю на что-то очень простое.Я пытаюсь отправить данные формы для обновления записей MySQL, используя HTTP-запрос ajax.У меня есть страница с формой.В форме у меня есть кнопка отправки, которая вызывает запрос http из отдельного файла js, а этот файл js вызывает файл php.Используя firebug, не похоже, что у меня есть какие-либо ошибки, но когда я "печатаю" sql, который возвращает запрос, он не передает фактические переменные, он просто передает "$ _POST ['name']" literallty.
Он возвращает sql:
UPDATE contacts SET name= "$_POST['name']" , phone = "$_POST['phone']" WHERE id = "$_POST['id']"
вместо передачи фактических значений переменных.Мой вопрос заключается в том, как передать действительные данные varialbe, чтобы они возвращали что-то вроде:
UPDATE contacts SET name= "Mike", phone = "303-333-3333" WHERE id = "001"
Моя форма (которая не содержит тегов формы вокруг) выглядит следующим образом:
<label>
<input type="text" name="name" id="name" />
</label>
<label>
<input type="text" name="phone" id="phone" />
</label>
<label>
<input type="hidden" name="id" id="id" />
</label>
<label>
<input onclick="sendData()"type="submit" name="button" id="button" value="Submit" />
</label>
мой js в отдельном файле выглядит следующим образом:
function sendData()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("center").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","xhr_php/send.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("name={$_POST['name']}&phone={$_POST['phone']}&id={$_POST['id']} ");
}
мой файл send.php выглядит следующим образом:
db_connection include
$name= $_POST['name'];
$phone= $_POST['phone'];
$id = $_POST['id'];
print $query = "UPDATE contacts SET
name = '{$name}',
phone = '{$phone}',
WHERE id= {$id}";
$results= mysql_query($query, $db_connection);
if(mysql_affected_rows()==1){
echo "Success";
}
if(mysql_affected_rows()==0){
echo "failed";
}
Опять же, все кажется, что работает правильно с точки зрения вызоваправильные файлы, это просто не передача каких-либо переменных данных.Любая помощь приветствуется.Спасибо.