Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.post_数据Jquery/JSON/PHP表单请求有问题_Php_Jquery_Ajax_Json_Ajaxform - Fatal编程技术网

.post_数据Jquery/JSON/PHP表单请求有问题

.post_数据Jquery/JSON/PHP表单请求有问题,php,jquery,ajax,json,ajaxform,Php,Jquery,Ajax,Json,Ajaxform,我似乎很难通过ajax/json将数据从表单发布到php文件。当我单击submit按钮时,什么也没有发生(除了在字段上进行客户端jquery错误检查之外)。我尝试了多种方法来实现这一点 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> Here is my main form page: <script> $(document).ready

我似乎很难通过ajax/json将数据从表单发布到php文件。当我单击submit按钮时,什么也没有发生(除了在字段上进行客户端jquery错误检查之外)。我尝试了多种方法来实现这一点

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

Here is my main form page:

<script>

$(document).ready(function() 
{
// do stuff here when the form is ready
$("#addName_Submit").click(function() 
{ 
    // when the add button is clicked get input field values
    var pName       = $('input[name=pName]').val();
    //validation at client's end
    var proceed = true;
    if(pName==""){ 
        $('input[name=pName]').css('border-color','#f47c20');
        $("input#pName").focus();
        proceed = false;}
if (proceed)
    {
    //data to be sent to server
    post_data = {'addNameForm'+pName};

        //Ajax post data to server
        $.post('addName.php', post_data, function(response)
        {  

            //load json data from server and output message     
            if(response.type == 'error')
            {
                output = '<div class="error">'+response.text+'</div>';
            }else{                
                output = '<div class="success">'+response.text+'</div>';
                //reset values in all input fields
                $('#addNameForm input').val(''); 
            }
            $("#result").hide().html(output).slideDown();}, 'json');
        }

   });
    $("#result").slideUp();

});

});
</script>
echo "<div id='result'></div>";
?>
          <fieldset id="addRentalPropertyForm">
          <div class="newFormBack" id="newFormBack">
          <center><table style="paddin-left:50px;width:90%;">
<tr>
<td colspan="2"><?php echo "<h5 style='text-decoration:underline;'>Add Rental</h5>";?>     </td>
</tr>
<tr><td>Property Nickname</td></tr>
<tr><td><input style="width:160px; border-radius:3px;font-size:12px; line-height:12px;     border:#CCC 2px solid;" name="pName" id="pName" type="text"></td></tr>
<tr><td></td><td><center><button class="button orange" id="addRental_Submit"     name="addRentalSubmit" />Add Rental Data & Continue to Upload Images</button></center></td>    </tr></table>
</div>
</center>
</fieldset>

Here is the code from my addName.php page

<?php
if($_POST)
{

$to_Email       = "xxxxxx@gmail.com"; //Replace with recipient email address
$subject        = 'Testing Rental Addition'; //Subject line for emails


//check if its an ajax request, exit if not
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

    //exit script outputting json data
    $output = json_encode(
    array(
        'type'=>'error', 
        'text' => 'Request must come from Ajax'
    ));

    die($output);
} 

//check $_POST vars are set, exit if any missing
if(!isset($_POST["pName"]))
{
  $output = json_encode(array('type'=>'error', 'text' => 'Input fields are empty!'));
   die($output);
}

//Sanitize input data using PHP filter_var().
// WE SHOULD SANAZTIZE OUR DATA FROM THE ADD RENTAL REQUEST

    $pName       = filter_var($_POST["pName"], FILTER_SANITIZE_STRING); 
*/
//$headers = 'From: your-name@YOUR-DOMAIN.COM' . "\r\n" .
$headers = 'From: '.$user_Email.'' . "\r\n" . //remove this line if line above this is un-commented
'Reply-To: '.$user_Email.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$user_Message = "The following name was added:\r\n\r\n";
$user_message .="Property Name: ".$pName."\r\n";
echo $user_message."<br />";

 // send mail
$sentMail = @mail($to_Email, $subject, $user_Message .'  -'.$user_Name, $headers);

if(!$sentMail)
{
    $output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
    die($output);
}else{
    $output = json_encode(array('type'=>'message', 'text' => 'Hi '.$user_Name .' Thank you for your email'));
    die($output);
}
}
else
{
echo "No Post Data";    
}
?>

这是我的主表单页面:
$(文档).ready(函数()
{
//表格准备好后,在这里做一些事情
$(“#addName_Submit”)。单击(函数()
{ 
//单击“添加”按钮时,获取输入字段值
var pName=$('input[name=pName]')。val();
//客户端验证
var=true;
如果(pName==“”){
$('input[name=pName]').css('border-color','f47c20');
$(“input#pName”).focus();
继续=假;}
如果(继续)
{
//要发送到服务器的数据
post_data={'addNameForm'+pName};
//Ajax将数据发布到服务器
$.post('addName.php',post_数据,函数(响应)
{  
//从服务器加载json数据并输出消息
如果(response.type==“error”)
{
输出=''+响应。文本+'';
}否则{
输出=''+响应。文本+'';
//重置所有输入字段中的值
$('#addNameForm input').val('');
}
$(“#结果”).hide().html(输出).slideDown();},'json');
}
});
$(“#结果”).slideUp();
});
});
回声“;
?>
“错误”,
“text'=>“请求必须来自Ajax”
));
模具(产量);
} 
//检查是否设置了$\u POST变量,如果缺少,请退出
如果(!isset($_POST[“pName”]))
{
$output=json_encode(数组('type'=>'error','text'=>'输入字段为空!');
模具(产量);
}
//使用PHP filter_var()清理输入数据。
//我们应该从添加租赁请求中对数据进行SANAZIZE处理
$pName=filter\u var($\u POST[“pName”],filter\u SANITIZE\u字符串);
*/
//$headers='From:your-name@YOUR-DOMAIN.COM'。“\r\n”。
$headers='From:'.$user\u Email'.'。“\r\n”//如果上面的行未注释,请删除该行
'回复:'.$user_电子邮件''。“\r\n”。
“X-Mailer:PHP/”。phpversion();
$user\u Message=“添加了以下名称:\r\n\r\n”;
$user\u message.=“属性名称:”.$pName.\r\n”;
回显$user_消息。“
”; //寄信 $sentMail=@mail($to_Email,$subject,$user_Message.'-'.$user_Name,$headers); 如果(!$sentMail) { $output=json_encode(数组('type'=>'error','text'=>'无法发送邮件!请检查您的PHP邮件配置'); 模具(产量); }否则{ $output=json_encode(数组('type'=>'message','text'=>'Hi'.$user_Name.'感谢您的电子邮件'); 模具(产量); } } 其他的 { 回显“无后期数据”; } ?>
非常感谢您的帮助。我忍不住想问题就在这里:

if (proceed)
    {
    //data to be sent to server
    post_data = {'addNameForm'+pName};

        //Ajax post data to server
        $.post('addName.php', post_data, function(response)
        {  

            //load json data from server and output message     
            if(response.type == 'error')
            {
                output = '<div class="error">'+response.text+'</div>';
            }else{                
                output = '<div class="success">'+response.text+'</div>';
                //reset values in all input fields
                $('#addNameForm input').val(''); 
            }
            $("#result").hide().html(output).slideDown();}, 'json');
        }

   });
if(继续)
{
//要发送到服务器的数据
post_data={'addNameForm'+pName};
//Ajax将数据发布到服务器
$.post('addName.php',post_数据,函数(响应)
{  
//从服务器加载json数据并输出消息
如果(response.type==“error”)
{
输出=''+响应。文本+'';
}否则{
输出=''+响应。文本+'';
//重置所有输入字段中的值
$('#addNameForm input').val('');
}
$(“#结果”).hide().html(输出).slideDown();},'json');
}
});

但我对ajax、json太陌生了,不太了解。非常感谢您的帮助。

这一行:
post_data={'addNameForm'+pName}

必须是
post_data={'addNameForm:'+pName}

因此,它可以使用pName变量的值发布“addNameForm”,pName变量是“name”字段中输入的文本

但如果我是你,我只会发布以下数据:

$.post('addName.php',{addNameForm:pName} , function(response){...});

为什么第一行缺少
http: