【问题标题】:AJAX function doesn't send data to PHP fileAJAX 函数不向 PHP 文件发送数据
【发布时间】:2014-09-16 11:17:03
【问题描述】:

我有一个提交表单,我不想在提交后刷新页面,所以我创建了一个 AJAX 函数,它应该将数据发送到 PHP 文件,但问题是 AJAX 函数不发送变量到PHP 脚本。

index.html 和表单

<!-- FORM -->
<form name="form" id="form" method="post">
<div class="row"> 
<div class="col-md-12">
<!-- GAME -->
<select class="form-control" id="game-group" name="game" onchange="ChangeBackground();">
<option selected disabled>Select your Game...</option>
<option value="League_of_Legends">League of Legends</option>
<option value="Heartstone">Hearthstone</option>
</select>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<!-- QUESTION -->
<div class="input-group" id="question-group">
<input type="text" class="form-control" name="question" id="question" placeholder="Start typing your question...">
<span class="input-group-addon">
<i class="glyphicon glyphicon-question-sign"></i>
</span>
</div>
</div>
</div>
<br>
<div class="row">
<!-- OPTIONS -->
<div class="form-group form-group-options col-md-12 col-sm-12 col-xs-12">
<div class="input-group input-group-option col-md-12 col-sm-12 col-xs-12" id="options-group">
<input type="text" name="option[]" id="option" class="form-control" placeholder="Options...">
<span class="input-group-addon input-group-addon-remove">
<span class="glyphicon glyphicon-remove"></span>
</span>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<!-- CHOICE -->
<div class="checkbox" id="choice-group">
<label>
<input type="checkbox" id="choice" name="choice" value="Yes">Allow multiple choice
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<button type="button" class="btn btn-primary btn-lg pull-left" name="submit_button" id="submit_button" onclick="sendForm()" data-toggle="modal" data-target="#myModal">Create Poll</button>
</div>
</div>
</form>

带有AJAX功能的magic.js

function sendForm()
{
var form = new FormData($('#form')[0]);
form.append('view_type','addtemplate');
$.ajax(
{
    type: "POST",
    url: "process.php",
    data: form,
    cache: false,
    contentType: false,
    processData: false,
    success:  function(data)
    {
        alert("GeGe");
    }
});
}

process.php(在查询中我只向数据库中插入一个变量来查看它是否有效,不用担心这个)

<?php

//Include configuration file
include('includes/config.php');

//Define variables
$game=$_POST['game'];
$question=$_POST['question'];
$option=$_POST['option'];
$choice=$_POST['choice'];

//Generate random number
$rand_value=rand();

//Create temporary folder
//mkdir($rand_value);

//Copy page of Ask Poll
//copy('page.php', $rand_value . '/page.php');
//rename($rand_value . '/page.php', $rand_value . '/index.php');

//Add data into database
mysql_connect($db_host, $db_username, $db_password) or die ("Errore di connessione!");
mysql_select_db($db_name) or die ("Impossibile selezionare database!");
//$sql1="CREATE TABLE `" . $rand_value . "` (Question VARCHAR(200), Options VARCHAR(200), Choice INT(11))";
//mysql_query($sql1) or die ("Impossibile eseguire la query!");

$sql2="INSERT INTO `675197851` (Question) VALUES ($question)";
mysql_query($sql2);
//Count number of Options available
//$count=count($option);

//for ($i=0; $i<($count-1); $i++)
//{
//  ${$sql . $i}="INSERT INTO `" . $rand_value . "` (Question, Options, Choice) VALUES ($question2, $option2[$i], $choice2)";
//  mysql_query(${$sql . $i});
//} 
?>

【问题讨论】:

  • something go wrong" 不够清楚。您能否添加更多关于预期结果和当前结果或您得到的错误的详细信息
  • return false; 添加到sendForm 函数的末尾
  • /* 从页面元素中获取一些值:*/ var form = $("#form").serialize();
  • 1. AJAX 功能甚至可以运行吗? 2. 如果 AJAX 函数运行,响应是什么? 3. 您的 PHP 页面上的错误报告是否开启,是否显示任何错误? 4. 网址正确吗? 5. Mysql 现在被贬值使用 Mysql_ 或 PDO :-)
  • 它运行是因为我看到了带有文本“GeGe”的弹出窗口,正如您在脚本中看到的那样。如何查看响应?

标签: javascript php jquery ajax


【解决方案1】:

如果您使用的是 JQuery,请尝试这种解决方案。

function sendForm()
{
    $.post( "process.php", $( "#form" ).serialize())
    .done(function( data ) {
        alert( "Data Loaded: " + data );
    });
}

【讨论】:

  • 我试过了,但它不起作用,实际上弹出窗口是数据加载:只有没有别的
  • 那么你的 php 脚本有问题。除了在 php 脚本中“回显”一些东西来获取 js 弹出窗口中的值。
猜你喜欢
  • 1970-01-01
  • 2016-03-09
  • 2014-01-11
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多