環境: PHP 5.3.5 MySQL サーバー 5.5.8
ajax 呼び出しを介して php に送信する 3 つの変数があります。ユーザーが選択リストから 1 つ以上の値を選択した場合、そのうちの 1 つが配列になる可能性があります。
PHP への ajax 呼び出しを行う前に、jQuery でアラートの値を表示できます。
PHP 側で値を確認できないようです。エラーが発生し、「連絡先が挿入されていません」というメッセージが表示されるため、挿入に失敗しています。
ajax関数が呼び出される前に受け取る出力は次のとおりです。
handler= setStActivitySharing, stu_id=31, user_ids=3,5
データをラップしてphpに送信する方法が間違っていると思います。
ajax を呼び出す JavaScript は次のとおりです。
$("#btnSubmit").click(function (e)
{
var selectedOptions = $("#stActivityShareList").val();
var handler = $("#handler").val();
var stu_id = $("#stu_id").val();
// $("#output").html("<b>You are sharing this file with: </b>" + selectedOptions);
insertContactsForActivitySharing(handler, stu_id, selectedOptions);
});
function insertContactsForActivitySharing(handler, stu_id, selectedOptions)
{
alert("handler="+handler +", stu_id="+ stu_id + ", selectOptions="+ selectedOptions);
//IS THIS CORRECT?!?!?!?!
var dataObject = JSON.stringify({
handler: handler,
stu_id: stu_id,
selectedOptions:selectedOptions
});
$.ajax({
type: "POST",
url: "models/ajaxHandler.php",
data: dataObject,
datatype: "json",
success: function(result){
if (result !== null)
{
alert(result);
//$("#output").html(result);
HideDialog(false);
e.preventDefault();
}
},
error: function(){
alert("ajax failure: could not share activity the selected persons");
}
});
}
AjaxHandler.php は次のとおりです....
if(isset($_POST['handler']))
{
$handler = $_POST['handler'];
if (!empty($handler)){
echo $handler;
// processHandler($handler);
}else{
echo "Unable to complete the request: " + $handler+". ";
}
}
ハンドラーをエコーしようとしても、プロセス全体が停止します。私が ajax で渡している 3 つの変数が php に到達していることを確認したいのですが、ここに何か問題があると思います。誰でも私を助けることができますか?