在Javascript Alert中返回PHP数组值

时间:2019-04-15 10:16:22

标签: javascript php wordpress

在我的Wordpress注册表格中,我想返回$error警报数组。

我尝试过console.log(),但是它什么也不返回,无论是否有JSON.stringify(),它都返回一个仅带有单词true的警报。

if($_POST){
    global $wpdb;

    //check no space  
    // ﻧﺘﺤﻘﻖ ﻣﻦ ﻋﺪﻡ ﻭﺟﻮﺩ ﻣﺴﺎﻓﺎﺕ

    $username = $wpdb -> escape($_POST['username']);
    // اﻟﻤﺴﺘﺨﺪﻡ
    $email =  $wpdb -> escape($_POST['email']); 
    // اﻻﻳﻤﻴﻞ
    $password = $wpdb -> escape($_POST['pass']);
    //اﻟﺒﺎﺳﻮﻭﺭﺩ
    $conpassword = $wpdb -> escape($_POST['passtwo']);
    //ﺗﺄﻛﻴﺪ اﻟﺒﺎﺳﻮﻭﺭﺩ


    $error = array(); // ﻟﺘﺨﺰﻳﻦ اﻟﺘﺤﺬﻳﺮاﺕ
    // حالة السترينج
    if(strpos($username," ") ==! false){ //true
        $error['username_space']= " اسم المستخدم يجب الا يحتوي على فراغات " ;

}
    // الحقل فارغ 
    if(empty($username)){
            $error['username_empty'] = " الحقل لا يمكن أن يترك فارغ " ; 

}     

    // التشابه
    if(username_exists($username)){
        $error['username_exis'] =" اسم المستخدم موجود بالفعل" ;
}    
    // الايميل غير صالح
    if (!is_email($email)){
        $error['email_notvalid'] =" البريد الالكتروني غير صالح " ;
}    
    // الايميل مستخدم  
    if(email_exists($email)){
        $error['email_exis'] = "البريد الالكتروني مستخدم بالفعل";
}    

    // اثنان من السترينجز تتطابق ام لا
    if(strcmp($password , $conpassword)!==0){
        $error ['passnotmatch'] = "ﺣﻘﻠﻲ ﻛﻠﻤﺔ اﻟﺴﺮ ﻻ ﻳﺘﻄﺎﺑﻘﺎ ";

    }

    if(count($error)==0){
        // انشاء مستخدم 
        wp_create_user($username,$password,$email);
        echo"ﺗﻢ اﻟﺘﺴﺠﻴﻞ ﺑﻨﺠﺎﺡ ";
         echo"<script> window.location = '".site_url()."/redafterreg/'</script>";
         exit();




    }else{
        $errorprint = print_r($error);

        $errorjs = json_encode($errorprint);
        echo "<script> alert( JSON.stringify($errorjs)) </script>";


    }

输出应为警报窗口中$error数组内的字符串。 但它只会返回ture,就像我之前提到的那样。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

默认情况下,print_r()返回true。如果要返回字符串而不是该值,则需要为可选的默认参数$return传递布尔值:print_r($error, true);

请参见print_r documentation