2011-11-07 1 views
0

私は非常に基本的なものを探している必要があります。私はajax http投稿要求を使用してmysqlレコードを更新するフォームデータを送信しようとしています。私はフォームを持つページを持っています。フォーム上では、別のjsファイルからhttpリクエストを呼び出す送信ボタンがあり、そのjsファイルはPHPファイルを呼び出します。ファイヤーバグを使用すると、私は何かエラーがあるように見えませんが、要求を返すSQLを "印刷"すると、実際に "$ _POST ['name']" literalltyを渡している実際の変数を渡していません。代わりに、実際の変数の値を渡すのHttpRequest xhrフォームvaiablesを使用して投稿

UPDATE contacts SET name= "$_POST['name']" , phone = "$_POST['phone']" WHERE id = "$_POST['id']" 

それはSQLをruturns。私の質問は、それはsomethignなどを返すように、どのように私は、実際の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"; 
} 

この場合も、正しいファイルを呼び出すためにはすべてが正しく機能しているように見えますが、変数データを渡すだけではありません。どんな助けでも大歓迎です。ありがとうございました。私はミスがこのような何かをライン

xmlhttp.send("name={$_POST['name']}&phone={$_POST['phone']}&id={$_POST['id']} "); 

変更、それを上にあると考えてい

答えて

0

var name = document.getElementById('name').value; 
var phone = document.getElementById('phone').value; 
var id = document.getElementById('id').value; 
xmlhttp.send("name="+name+"&phone="+phone+"&id="+id); 
+0

はあなたの助けをいただき、ありがとうございます。それはトリックでした、私はそれが何か単純だったことを知っていた。ありがとう! – user982853

関連する問題