2016-07-13 5 views
-2

私は自分のupdate.phpファイルをテストしましたが、完璧に動作し、コンソール経由でスクリプトをチェックしてもエラーはありません。ここの問題だけ。 Ajaxはupdate.phpファイルに "id" "comment_area"という値を送ることはできません。ここのミスは何ですか?私のajaxコードは他のPHPページに値を送ることができません

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.2.min.js"> 
 
$(document).ready(function() { 
 
    $("#b_news").submit(function(evt) { 
 
    evt.preventDefault(); 
 

 
    var text = $('#breaking_news_text').val(); 
 
    var id = 21; 
 
    $.ajax({ 
 
     type: "POST", 
 
     url: "update.php", 
 
     data: { 
 
     comment_area: text, 
 
     id: id 
 
     }, 
 
     success: function() { 
 
     alert("sucess"); 
 
     } 
 
    }); 
 
    }); 
 
}); 
 

 

 

 
</script>

<form id="b_news" method="post" action=""> 
 
    <div> 
 
    <div> 
 
     <textarea id="breaking_news_text" class="breaking_news_text" rows="6" cols="50" placeholder="Add text here..." required></textarea> 
 
    </div> 
 
    </div> 
 
    <div> 
 

 
    <input type="button" id="save" value="Save Changes" /> 
 

 
    </div> 
 
</form>

<?php 
 
include("./inc/connect.inc.php"); 
 

 
$id=$_POST['id']; 
 
$update = $_POST['comment_area']; 
 
$sql = "update comments set comment_area='$update' Where id='$id'"; 
 
$result = mysqli_query($mysqli, $sql)or die("error"); 
 

 
     
 

 

 
?>

+1

には、PHPコードが表示されます。任意の基本的なデバッグが完了しましたか?おそらくリダイレ​​クトがあり、あなたのスクリプトがGETとして呼び出されており、ポスト値は失われています。 –

+0

私は.phpファイル – anor

+0

'var_dump($ _ SERVER ['REQUEST_METHOD']、$ _POST)'を追加し、何が表示されるかを見てください。また、[SQLインジェクション攻撃](http://bobby-tables.com)に脆弱であることに注意してください。 –

答えて

0

あなたのボタンは、単にサブことができないように私には思えますそのタイプのためにフォームをミートしてください。 この方法を提出し、ボタンのtype属性を変更しよう:

<input type="submit" id="save" value="Save Changes"/> 
0

次の2つの問題を抱えています。

最初のには、スクリプト要素ごとに1つのスクリプトしか指定できません。スクリプトはsrc属性で参照することも、開始タグと終了タグの間に入れることもできます。

あなたがここにいるように両方を実行しようとすると、srcだけが尊重されます。

2つのスクリプトに別々の<script>要素を使用してください。


第二に、あなたが提出したイベントをトリガする方法がありません。送信イベントは、フォームが送信されたときにトリガーされますが、テキストエリアやボタンから送信することはできません。ボタンを送信ボタンに置​​き換えます。

+0

ボタンは表示されずにフォームを送信できます。入力フィールドを選択し、[このフィドル](https://jsfiddle.net/xwLsuapj/)で打つことを試みてください。 – Siguza

+2

それはなぜ彼が 'textarea'を言及していないのですか? – Jonathan

+1

@Siguza - 彼らはできますが、私が答えて言ったように、質問のフォームにはテキストエリアとボタンしかありません。テキスト入力はありません。 – Quentin

関連する問題