前提・実現したいこと
inputのvalueの値をajaxでphpデータにポストしたいのですができないです。
dataで設定した値が送信先の該当HTMLの内容に書き換わってしまいます(今回の場合だとurlで設定しているuser_model.phpで表示されるHTMLに書き換わる)
そのためdataTypeをjsonにするとエラーが発生する弊害も発生しています。
発生している問題・エラーメッセージ
上記通り
該当のソースコード
◆index.php
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="/ajax.js"></script> <form class="add_member_form"> <label> <input id="user_name" name="user_name" type="text" placeholder="ユーザー名" /> </label> <label> <input id="password" name="password" type="password" placeholder="パスワード" /> </label> <select name="root_name" id="root_name"> <option value="" disabled selected>▼</option> <option value="master">管理者ユーザー</option> <option value="user">一般ユーザー</option> </select> <button id="add-member" type="button"></button> </form>
◆ajax.js
$(document).ready(function() { //登録 Insert_action(); }); //登録 function Insert_action() { //登録するボタンクリック $(document).on('click', '#add-member', function() { var user_name = $('#user_name').val(); var password = $('#password').val(); var root_name = $('#root_name').val(); $.ajax({ type: 'POST', url: '/user_model.php', dataType: 'text', data: { 'user_name': user_name, 'password': password, 'root_name': root_name, }, success: function(data) { console.log(data); }, error: function(error) { console.log(error); } }); }) }
◆model.php
require_once "../model/model.php"; $sql = 'INSERT INTO user(user_name,password,root_name) VALUE (:user_name, :password, :root_name)'; $stmt = $dbh->prepare($sql); $prepare->bindValue(':user_name', $_POST["user_name"], PDO::PARAM_STR); $prepare->bindValue(':password', $_POST["password"], PDO::PARAM_STR); $prepare->bindValue(':root', $_POST["root_name"], PDO::PARAM_STR); if( $prepare->execute() ){ echo "登録しました"; }else{ echo "登録できませんでした"; }
回答2件
あなたの回答
tips
プレビュー